Wordpressで記事に自分のサイトの別記事へのリンク(内部リンク)を埋め込んだ際、コメントがついてしまう...
公開した瞬間コメントが付くので何事!?と思ったのですが、Wordpressを使ってサイトを作っているユーザー同士が記事の紹介を円滑に行えるようにするためのセルフピンバックという機能のようです。
テーマによってはこのピンバックが自分のサイト内の内部リンクでも有効になっていることがあるため、コメント扱いとなってしまうようです。
functions.phpで自サイトのセルフピンバックのみを停止する方法がお勧め!
記事にリンクを貼るとコメントになってしまう
テーマによっては記事内に別記事へのリンクなどの内部リンクを埋め込むと公開を押した瞬間にコメントとしてピンバックが届くことがあります。
こんな感じです。
セルフピンバックというWordpress標準の機能です。
自分で設置したリンクでも「参考リンクとして使用されました!」という旨のコメントが届いてしまいます。
【ピンバック機能とは?】
サイトへのリンクが張りつけられたことを管理者に知らせてくれる機能。
Wordpressユーザー同士で、お互いにWordpressの設定画面でピンバック機能をONにしていると、URLを自動で検出してコメント欄に引用された先のページを載せるかどうかの通知が来ます。
引用元が許可すると、引用元のコメント欄に引用先の記事ページへのリンクとタイトルがコメントとして残されます。
設定でピンバック自体を停止する
Wordpressメニューの設定>ディスカッション>投稿のデフォルト設定
でピンバックのチェックを外すことで、ピンバック機能を停止することが可能です。
しかしながらこの方法だと他サイトへのピンバックも停止されてしまうので、あまりよろしくないです。
自分のサイト内での内部リンクにピンバックが通知されるのを停止しつつ、他サイトへのピンバックを生かしておくにはfunctions.phpにコードを追記すればOKです。
functions.phpでセルフピンバックを停止する
functions.phpにコードを追加し、自サイト内でのピンバックを停止する方法です。
自サイトの内部リンクでピンバックを停止し、尚且つ他サイトへのピンバック機能は生かせるのでこの方法が実用的です。
テーマ内のfunctions.phpを編集する場合、wordpressログインした後のメニューから簡単に編集することができます。
外観 > テーマエディター
に進みましょう。
続いて、右側のテーマファイルのところで、「テーマのための関数」というのが選べるのでこれをクリックします。
以下のコードをそのまま貼り付ければ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にコードを追加する方法が簡単かつ軽量でおすすめです!