【WordPress】コメント欄を非表示する(テンプレートを無理やり置き換え版)

WordPressのコメント機能を記事を公開した後に、管理画面で非表示するのは少しめんどうです。
そこで無理やりコメントテンプレートを空のファイルに置き換えることで、非表示してみます。

通常のコメント非表示操作

コメントを非表示するには、通常は次の作業が必要です。

  1. "新しい投稿へのコメントを許可"からチェックを外す

    管理画面で設定メニューのディスカッション設定を開いて、"新しい投稿へのコメントを許可"のチェックを外します。

    これで、以後に作成する新規記事のコメントが非表示になります。

  2. 記事毎に"コメントを許可"からチェックを外す

    記事の編集画面を開いて、"コメントを許可"からチェックを外します。

    ブロックエディターはディスカッションの中にあります。

    ブロックエディターはディスカッション

    旧エディターは上部の表示オプションを開き、"ディスカッション"にチェックを入れます。

    表示オプションを開き、ディスカッションにチェック

    下方にスクロールするとデスカッションの設定パネルが表示されているので、"コメントを許可"からチェックを外します。

    コメントを許可からチェックを外します

②は全ての記事をチェックしないといけないので、めちゃくちゃ面倒ですね。

無理やりコメントテンプレートを空のファイルに置き換える

コメントはcomments_template()という関数で表示内容等の設定をおこなって、この関数の最後に、コメントテンプレートを読み込んでいます。
実際にコメント画面が生成されるのは、コメントテンプレートです。

通常のコメントテンプレートは/wp-includes/theme-compat/comments.phpですが、comments_templateフィルターで変更できるようになっています。

そこで空のコメントテンプレートを作成して、comments_templateフィルターでそのパスを返します。

まずは自作プラグインのディレクトリ内に空のphpファイルを作成します。

■空のphpファイル

  • <?php
AFFS Simple Code Viewer
Copy

■プラグインのphpファイル

  • add_filter('comments_template','my_comments_template',999);
  • function my_comments_template($theme_template){
  • return plugin_dir_path( __FILE__ ) . '空のphpファイル名';
  • }
AFFS Simple Code Viewer
Copy

これで、コメントが非表示になります。