WordPressのコメントフォームを非表示にする

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関数を削除したり、条件分岐することで、コメントフォームを削除することもできます。

コメントフォームの下を広告スペースにする