コメントを”完全に”受け付けなくするには。

2013年12月27日

いまどき、ブログでコメントって受け付けないのがもうスタンダードですよね。
AmebaでAKB48やタレントさんでもなければ、コメント数で資金稼ぎしてブログ旅してるわけでもないですからね。
スパムや炎上の窓を開けておくことはないですよね。

でも、投稿記事のテンプレートの

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php comments_template(); ?>
<?php comments_template(); ?>
<?php comments_template(); ?>  

を取りはずすだけでは閲覧ユーザーが投稿できなくなるだけで、
コメント投稿用のテンプレートphpを介してスパムは入ってきてしまう可能性があるので、機能そのものを停止しないといけません。

functions.phpに以下を追記して、機能停止しましょう。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/*  コメント停止  */
function add_comment_close ( $open ) {
$open = false;
return $open;
}
add_filter( 'comments_open' , 'add_comment_close' ,10 , 2 );
/*  コメント停止  */ function add_comment_close ( $open ) { $open = false; return $open; } add_filter( 'comments_open' , 'add_comment_close' ,10 , 2 );
/*  コメント停止  */
function add_comment_close ( $open ) {
    $open = false;
    return $open;
}
add_filter( 'comments_open' , 'add_comment_close' ,10 , 2 );

(参考:「現場でかならず使われているWordPressのデザインメソッド」(MdN刊)より)

追記: 投稿タイプによらず、全てコメント停止したい場合は、以下でもよいようです。(大曲さんにおしえてもらいました!)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
add_filter( 'comments_open', '__return_false' ); 
add_filter( 'comments_open', '__return_false' ); 
add_filter( 'comments_open', '__return_false' );