WordPressのデフォルトの設定ではコメントを受け付けるようになっていますが、コーポレートサイトなどではコメント機能を使わない場合が多いと思いますので、コメント機能を非表示にして機能を停止、無効化する方法を書きたいと思います。
はじめに
WordPressをブログとして使っている場合はコメント欄はあったほうがよいかと思いますが、コーポレートサイト等コメント欄を完全に削除したい場合もあると思います。
ちなみにコメント欄を非表示にしてもスパムが来ることがあります。
ただコメント欄を取りはずすだけでは閲覧しているユーザーが投稿できなくなるだけです。コメントの投稿はwp_comments_post.phpで処理されているため、ここから直接投稿ができてしまいます。なので機能そのものを停止する必要があります。
あとほとんど知られていませんが、メディアからアップロードした画像のページというのが存在します。ほとんどの人が意識していないと思いますが、この画像のページにコメント欄も存在するので、こちらも対処する必要があります。
functions.phpに記載して機能を停止
WordPressを入れた当初はすでにサンプルとして「Hello world!」の記事とコメントも存在していると思います。
functions.phpの追加は、なるべく子テーマを使用することをおすすめしています。
子テーマのfunctions.phpに下記を追加します。
add_filter( 'comments_open', '__return_false' );
アップしたら確認します。
コメント入力欄がなくなっていると思います。
.htaccessでファイルへのアクセスを制限
WordPressのコメント機能は「wp-comments-post.php」を使用しているので、このファイルへのアクセスを制限します。
.htaccessのセキュリティでも出てきた命令です。
.htaccessへ下記を追加します。
<Files wp-comments-post.php> order allow,deny deny from all </Files>
管理画面からコメント欄を非表示に
すでにコメント欄は表示させない状態にはしていますが、いちお管理画面からも欄を非表示にしておこうと思います。
[管理画面]の[設定]から[ディスカッション]を押します。
投稿のデフォルト設定の
「新しい記事に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」
「新しい投稿へのコメントを許可する」
にチェックが入っていると思います。
こちらのチェックを外します。
下のほうにスクロールし、「アバターの表示」欄を見ると、「アバターを表示する」にチェックが入っていると思います。
こちらのチェックも外し、「更新を保存」を押します。
既存のコメントを消す
上記の作業をすればこれからのコメントはさせないようにできたと思いますが、すでにコメントされたものは残っています。
これも消しておきたいですよね。
もし新規にWordPressをインストールしたばかりなら、この「Hello world!」の投稿を消せばよいかと思いますが、記事だけは残したい場合が多いかと思います。
single.php等にあるコメント欄を削除すれば表示されないのでそれで対応すればよいかと思います。
インクルードタグ/comments template – WordPress Codex 日本語版
基本の命令は、
<?php comments_template(); ?><!--はコメントテンプレートの読み込み -->
がある場所を探して削除します。
【STINGER8】の場合
例として【STINGER8】の場合を書いておきます。
子テーマにsingle.phpをコピペして、下記を削除したものをアップします。
<?php if ( comments_open() || get_comments_number() ) { comments_template(); //コメント } ?>
さきほど存在していたコメントがなくなっていると思います。
コメントをどうぞ