WordPressには、記事内に埋め込まれたリンクに対して、自動的にピンバックを送信する機能があります。
自動で送信してくれるので、非常に便利な機能ではあるのですが、内部リンクを記事内に貼ると自サイトに対してもピンバックを送信してしまいます。
以前、自サイトへのピンバックを停止するNo Self Pingsというプラグインを紹介しましたが、今回はプラグインを使わずにセルフピンバックを停止する方法を紹介したいと思います。3つの方法を紹介しますので、自分に合ったものを活用してください。
ピンバックとは
ピンバックというのは、「記事にリンクを貼ったよ」ということをリンク先のサイトにお知らせする機能のことです。記事内に内部リンクを貼ることで、自サイトに対してピンバックが送信されることをセルフピンバックといいます。
トラックバックとほぼ同等の機能ですが、トラックバックがトラックバック送信用URLに手動で送るのに対して、ピンバックは記事内にリンクを埋め込めば自動で送信されます。
functions.phpで制御する
まず最初に紹介するのは、functions.phpで制御する方法です。この方法が一番楽だと思います。
利用しているテーマのfunctions.phpに以下のコードを追加するだけで、セルフピンバックを停止することができます。
function no_self_ping( &$links ) {
$home = home_url();
foreach ( $links as $l => $link ) {
if ( 0 === strpos( $link, $home ) ) {
unset($links[$l]);
}
}
}
add_action( 'pre_ping', 'no_self_ping' );
これだけで、内部リンクを貼ってもセルフピンバックが送信されなくなります。
外部サイトについては、今まで通りピンバックが送信されます。
内部リンクを相対パスにする
内部リンクを貼るときに、URLを絶対パスではなく相対パスで指定することで、セルフピンバックを止めることができます。
例えば、以下のようなリンクの貼り方だとセルフピンバックが送信されます。
<a href="https://techmemo.biz/wordpress/no-self-pings/">No Self Pings</a>
ドメイン部分を除外して、リンク先を相対パスで指定すると、セルフピンバックは送信されません。
<a href="/wordpress/no-self-pings/">No Self Pings</a>
この際、先頭のスラッシュ(/)を忘れないように気をつけましょう。
ピンバックの機能を停止する
最後に、そもそもピンバックの機能自体を停止してしまう方法です。
ピンバック機能を停止する方法については、No Self Pingsの記事に手順を掲載していますのでご参照ください。
ピンバック機能を停止すると、外部サイトに対してもピンバックが送信されなくなります。
あとがき
WordPressを使い始めた頃は、セルフピンバックでついたコメントをいちいち手動で削除していました。当ブログではプラグインを導入していますが、毎回削除する手間がなくなってかなり楽になりました。
セルフピンバックうざいなーと思っている方は、ぜひお試しください。