WordPress 内部リンクで「モデレートしてください」を回避する4つの方法を紹介
自分のブログ記事がどこかで参照されると、WordPressから「モデレートしてください」という通知が送られてきて、ダッシュボードではコメントとして管理されて承認待ちの状態で表示される。
これは、WordPressの「ピンバック」と呼ばれる機能で、リンクを貼ったことが相手に自動で通知され、通知を受けた側が承認することで、相手の記事のコメント欄に自分の記事がリンクとして表示される仕組みになっている。
そして、自分のブログ記事のリンクを貼った場合でも、同様の扱いになってしまうため、内部リンクでも自分の管理画面でコメントの承認待ちとして管理されてしまう。
内部リンクによるピンバックを「セルフピンバック」という。
セルフピンバックによるコメント承認待ちは、放置しても削除してしまってもいいけど、内部リンクを埋め込むたびに通知や管理画面に表示されるのは煩わしいから、ピンバックが機能しないようにしてしまったほうがいい。
内部リンクでのセルフピンバックを回避するには、いくつかの方法があるため、ぞれぞれの方法を紹介する。
設定でピンバックを無効にする方法
WordPressの設定を変更してピンバックの機能を無効にする方法。
ただし、ピンバックそのものが無効になるため、内部リンクだけではなく外部からの通知も受け付けなくなってしまう。
- ダッシュボードの「設定 > ディスカッション」をクリック
- 項目「投稿中からリンクしたすべてのブログへの通知を試みる」のチェックを外す
- 項目「新しい投稿に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」のチェックを外す
- ボタン「変更を保存」をクリックして変更した設定を反映する
リンクを相対パスにする方法
内部リンクのアドレスを絶対パスではなく相対パスに変更すると、ピンバックを送信しなくなる。(※パスの仕組みについては省略する)
絶対パス:https://sample.com/wp/test.html
相対パス:/wp/test.html
プラグインを利用する方法
セルフピンバックを回避するためのプラグイン「No Self Pings」をインストールして有効化するだけ。
対応としては簡単だけど、プラグインを導入しすぎることによってWordPressの負担が増えてパフォーマンスが低下するという点で懸念する声もある。
でも、WordPressはCMSだから、何かしたいというのを簡単に実装できるのが利点だと思う。プラグインのインストール数を見れば利用者も多いわけで、対策として定番とも言えるのかも。
function.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' );