WordPressで内部リンクがコメント扱いされる...通称セルフピンバックをfunctions.phpで停止する方法。

Wordpressセルフピンバック停止eye_catch

WordPressで記事に自分のサイトの別記事へのリンク(内部リンク)を埋め込んだ際、コメントがついてしまう...

公開した瞬間コメントが付くので何事!?と思ったのですが、Wordpressを使ってサイトを作っているユーザー同士が記事の紹介を円滑に行えるようにするためのセルフピンバックという機能のようです。

テーマによってはこのピンバックが自分のサイト内の内部リンクでも有効になっていることがあるため、コメント扱いとなってしまうようです。

functions.phpで自サイトのセルフピンバックのみを停止する方法がお勧め!

記事にリンクを貼るとコメントになってしまう

テーマによっては記事内に別記事へのリンクなどの内部リンクを埋め込むと公開を押した瞬間にコメントとしてピンバックが届くことがあります。

Wordpressセルフピンバック停止1

セルフピンバックがコメントに届いた様子

こんな感じです。
セルフピンバックというWordpress標準の機能です。

自分で設置したリンクでも「参考リンクとして使用されました!」という旨のコメントが届いてしまいます。

【ピンバック機能とは?】
サイトへのリンクが張りつけられたことを管理者に知らせてくれる機能。

WordPressユーザー同士で、お互いにWordpressの設定画面でピンバック機能をONにしていると、URLを自動で検出してコメント欄に引用された先のページを載せるかどうかの通知が来ます。

引用元が許可すると、引用元のコメント欄に引用先の記事ページへのリンクとタイトルがコメントとして残されます。

設定でピンバック自体を停止する

WordPressメニューの設定>ディスカッション>投稿のデフォルト設定

でピンバックのチェックを外すことで、ピンバック機能を停止することが可能。

Wordpressセルフピンバック停止2

設定>ディスカッション>投稿のデフォルト設定

しかしながらこの方法だと他サイトへのピンバックも停止されてしまうので、あまりよろしくないです。

functions.phpでセルフピンバックを停止する

functions.phpにコードを追加し、自サイト内でのピンバックを停止する方法です。

Wordpressセルフピンバック停止3

テーマ内のfunctions.phpを編集する場合、wordpressログイン後、左メニューから簡単に編集することができます。

外観>テーマエディターをクリックする。
Wordpressセルフピンバック停止4

子テーマのfunctions.phpにコードを追加

右側のテーマファイルのところで、「テーマのための関数」というのが選べるのでこれをクリックする。

以下のコードをそのまま貼り付ければOKです。
ファイルを更新をクリックするのをお忘れなく。

//セルフピンバックを送信しない
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
-

© 2021 ソロ学