機能WordPress

【WordPress】内部リンクを貼った際に届くコメント(セルフピンバック)を停止させる方法

WordPressを使い始めの方が疑問に思う現象があると思います。
記事を書いた際に自分のブログ記事のリンクを貼ると、
コメントが届く現象…

この機能を「セルフピンバック」と言います。
これ機能を停止させる方法をご紹介します。

スポンサーリンク
新たにレンタルサーバーを選ぶならこれ!
エックスサーバー
  • 国内シェアNo.1の高速サーバーなのでストレスフリー!
  • 自動バックアップ機能に標準対応で安心運用可能!
気になるポイント!キャンペーン中に契約すれば.com等のドメインを永久無料で使えます!
WordPressでサイトを運用すると重くなりがちですが、使用しているレンタルサーバーのスペックがあまり良くないと、どんなにWordPress側で高速化をしていても、なかなか高速化の成果が反映されません。サイトの表示スピードが上がらない原因がレンタルサーバーの場合は、エックスサーバーにしてみると改善するかもしれません! またサーバー等のバックアップを自動で行っているので、安心してサイトの運用をすることができます! またマルチドメイン、メールアドレスを無制限で使えるというのもうれしいですね。

公式サイトはこちら

セルフピンバックとは?

セルフピンバックの機能はそもそも何のためにあるのか?
元々「ピンバック」という機能があります。

これは別のサイトから、
自分の記事が紹介されてリンクが貼られた際に、
その紹介された事実を通知する機能が、
『ピンバック』と呼ばれるものです。

この機能があることで、
自分のブログ記事が紹介されている事実を、
把握出来たりすることができます。

ただし、双方のブログがWordPressを使用していることが前提で、
ピンバック機能を使用していない場合は、
この通知が来ることがありません。
(初期設定ではピンバック機能が設定されています)

この機能によって、
自分の過去記事を引用するため、リンクを貼ると、
ピンバックが機能し、コメントとして通知されます。
これが「セルフピンバック」です。

これを知らずに、
「わーーーコメントがきってるぅぅーー」
と期待してコメントを見てみると、
コメント者が自分の記事名で通知が来てるので、
がっかり感が半端ないです。

これを回避するために、セルフピンバックを停止させましょう。

セルフピンバックの停止方法

セルフピンバックを停止させるには、
いくつかの方法があります。
1つは、「ピンバック機能そのものを停止させる」
2つ目は、「プラグインを使用する」
3つ目が、「functions.phpにコードを追加する」

これらの方法です。
それぞれ詳しくご紹介します。

ピンバック機能そのものを停止させる

一番簡単な方法が、ピンバックそのものをさせない方法です。
その設定方法は、
ワードプレスの管理画面の
設定>ディスカッション
こちらで設定できます。

こちらの
「新しい記事に対し他のブログからの通知(ピンバック・トラックバック)を受け付ける」
という箇所のチェックを外すとピンバックを来なくなります。

しかし、この方法の場合、これから書く記事のリンクを貼った場合にのみ適用され
過去に書いた記事には適用されません。
そのため、過去の記事すべてにおいて、設定をしなければならないので、
これから記事を書き始める方にはお勧めですが、
すでに多くの記事を書いている方の場合は、非常に面倒くさいです。

プラグインを使用する

プラグインを使用しても、セルフピンバックを停止させることができます。
「WP Total Hacks」というプラグインが有名なようですが、
個人的には極力プラグインを使用したくないので、
あまりオススメではありません。

個人的なオススメは次のfunctions.phpにコードを追加する方法です!

functions.phpにコードを追加する

functions.phpにコードを追加する方法ではあれば、
記事ごとに設定する必要もなく、多くの記事を書いた方でも、
簡単に出来るので、オススメです。

ただし、非常に繊細なfunctions.phpのカスタマイズとなるため、
子テーマの使用+バックアップを取ることを推奨します。

準備ができたら、以下のコードをfunctions.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' );

コピペでできるので簡単です。

セルフピンバックでお困りの方はお試しを!

コメント