comments_openフィルターフックを使ってコメントフォームを消す
すべてのページからコメントフォームを削除
コメントフォームを非表示にする方法です。
comments_openフィルターフックを利用して、すべてのページからコメントフォームを削除することができます。
add_filter('comments_open', '__return_false');
functions.phpに上の一行を追加すれば、コメントフォームを削除することが可能です。comments_openにフックする別のやり方で、以下の方法で同じ効果を得ることができます。
function comments_open_false( $open ) { $open = false; return $open; } add_filter( 'comments_open', 'comments_open_false', 10, 1 );
$openをfalseにすることで、コメントフォームが非表示になります。この方法では、ページ単位でコメントフォームの表示/非表示を制御することが可能です。
ページ単位でコメントフォームの表示を制御
WordPressの固定ページのみコメントフォームを非表示にする場合は、is_page()を利用して以下のように書くことが出来ます。
function comments_open_false( $open ) { if( is_page() ) { $open = false; } return $open; } add_filter( 'comments_open', 'comments_open_false', 10, 1 );
is_page()にslug名を引数として渡せば、固定ページの一部のみコメントフォームを削除することも可能です。
if( is_page( 'contact-us' ) ) { $open = false; }
上の例は、
‘contact-us’
というslugが設定された固定ページのみ、$openをfalseに設定するコードになります。
テーマのcommnets.phpからcomment_form()を削除するやり方も可
functions.phpを利用したやり方だけでなく、テーマを構成するcommnets.php内のcomment_form関数を削除したり、条件分岐することで、コメントフォームを削除することもできます。