【WordPress】ドメイン単位、サイト単位でピンバックを停止する方法

  • 投稿 : 2017-01-20
function no_self_pingx( &$links ) {
    $home = get_option( 'home' );
    foreach ( $links as $l => $link ){
        if ( 0 === strpos( $link, $home ) )
            unset($links[$l]);
        //-- 追加 start -------------
        if ( 0 === strpos( $link,"example.com") )
            unset($links[$l]);
        //-- 追加 end -----------
    }
}
add_action( 'pre_ping', 'no_self_pingx' );

参考:No Self Pings — WordPress Plugins

上記をテーマのfunctions.phpに追記すると、自サイトとexample.comに対するピンバックを停止します(そのほかのサイトには送信する)。ソースの中身は、No Self Pingsプラグインのソースを流用しています。

example.comを違うURLに書き換えると、そのサイトが対象になります。サイトを追加したい場合は、上記の追加した2行をそのまま真下にコピペして、example.comの部分を書き換えたらOKです。

補足

strposは文字列が含まれるかどうかを判定する関数です。
strpos( $link,"example.com")example.com ,blog.example.com などを停止する
strpos( $link,"blog.example.com")blog.example.com を停止する
strpos( $link,"http://example.com")http://example.com を停止する。https://example.comは停止しない。http://blog.example.comは停止しない

こんな感じになります。
スポンサーリンク