WordPressでセルフピンバックを無効にする4つの方法

ブログの記事にコメントがついたと思ったらセルフピンバックだったエヌジマです。こんにちは。今回はワードプレスでセルフピンバックを無効にする方法を4つ紹介したいと思います。

セルフピンバックとは

ワードプレスには、リンクを張ったことをリンク先に自動で通知するピンバックという機能があります。

このピンバックの送受信を許可する設定にしていると、記事内で自サイト内へのリンク(例えば記事の紹介など)を張った際にピンバックを自サイトに対して送信してしまう場合があります。

ここから先では、このようなセルフピンバックが起こらないようにする4つの対処法を紹介していきます。

ピンバック送信機能を停止する

そもそも、ピンバックの送信機能それ自体を許可しない設定にしておけば、セルフピンバックも発生しません。しかし、当然ながら他サイトへのピンバック送信も停止されてしまうので、どうなんだろうといったところではあります。

ワードプレス―ボートのディスカッション設定画面

やり方としては、上の画像のようにディスカッション設定の「この投稿に含まれるすべてのリンクへの通知を試みる」という記述部分のチェックを外すだけです。

他サイトへのピンバック送信も停止されてしまうのはちょっと…という方は、これから紹介する3つの方法をお試しください。

リンクを相対パスで指定する

まず1つ目は、自サイトへリンクを張る際に、絶対パスではなく相対パスでURLを指定してあげるというものです。

他の記事からこの記事へリンクを張る場合を考えてみます。
(それら2つの記事は同じ階層に存在すると想定)

絶対パス://jimeishi.net/wordpress-self_pinback
相対パス:./wordpress-self_pinback

自サイトへのピンバック送信がされないようにする場合は、下の相対パスでリンクを張る必要があります(先頭の./は省略可能)。

ちなみに、当ブログでは現在このやり方を用いています。

プラグインを利用する

次に紹介するのが、プラグインを用いた方法です。セルフピンバックを防ぐプラグインとしては、「No Self Pings」というものが多くの人に利用されているみたいです。

このプラグイン、導入もすごく簡単。

ログイン後の左メニュー→「プラグイン」→「新規追加」→「No Self Pings」を検索→「いますぐインストール」→「有効化」

細かな設定も必要なく、これだけでセルフピンバックを防いでくれます。

functions.phpを編集する

function.phpに次の記述を加えるだけでセルフピンバックを回避出来ます。

function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );

この方法はプラグインはあまり使いたくないという方におすすめですが、functions.phpを変にいじるとサイト自体が表示されなくなる場合もあるのでご注意ください。

なお、上記コードはWordPress.orgのサポートフォーラムにあったものを拝借させていただきました。

おわりに

ここまで4つの方法を紹介してきましたが、いかがだったでしょうか。
セルフピンバックで困っている方はぜひ試してみて下さいね!

この記事を書いた人

エヌジマ

エヌジマ

三十路の唐変木。学校など特定の社会的状況で話せなくなる場面緘黙(ばめんかんもく)を過去に経験。現在も雑談は大の苦手で、時に緘黙の症状が出ることも。このブログでは自分の日常や「紹介したい!」と思ったものを中心にいろいろ書いています。詳しくは当ブログについてをご覧ください。また、お問い合わせはこちらのフォームからどうぞ。