【WordPress】functions.phpだけで「モデレートしてください」メールなどを停止する方法

20150629033200

WordPressを使ったHPやブログで記事にリンクをはると自分がはった内部リンクでも上画像のようなメールがくるのを停止したい場合の対処法です。

結論からいうと以下のコードを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' );

これはNo Self Pingsというプラグイン内のコードを転載したものなのですが、たったこれだけのコードなので知識のある人はプラグインをインストールするより直接functions.phpにコレを書いたほうが良いですね。

以下のように無名関数を使って書くとちょっぴりスタイリッシュでいい感じですね^^

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

同様のことは設定→ディスカッションからでも行えるようなので?自分の知識レベルに合わせて設定か、プラグインか、functions.phpかを選択するとよろしいかと思います。

20150629212918

私は汎用性を考えて極力設定画面は使わずにコードからあらゆる設定を行うようにしているのでfunctions.phpにコレを書く方法でいきます。