WordPressのコメントを無効にするには新しい投稿と既存記事を分けて設定する
公開日: 執筆:佐藤
WordPressのディスカッション設定でコメントを許可しないようにしても、既存記事の受付状態は変わりません。全体設定は、新しく作る投稿の既定値です。既存記事は、編集画面または投稿一覧の一括編集で、コメントを別に閉じます。
コメント受付を閉じても、すでに付いたコメントは削除されません。コメント受付と、ピンバック・トラックバックの受付は別の設定です。何を止め、何を残すかを分けてから変更します。
全体設定で変わるのは新しい投稿の既定値である
WordPress 3.4.1のディスカッション設定の処理には、新しい記事へのコメントを許可するdefault_comment_statusがあります。同じ画面には、この設定を記事ごとに上書きできるという説明もあります。
これから作る投稿でコメントを受け付けないなら、ディスカッション設定で、新しい投稿へのコメント許可を外します。その後に作る投稿は、コメントを閉じた状態が既定になります。
既定値は、投稿を作るときの初期状態です。投稿の編集画面でコメントを許可すれば、その投稿だけ受付を開けます。全体設定を変えたから、すべての記事が同じ状態へ書き換わるわけではありません。
既存記事のコメントは個別編集か一括編集で閉じる
既存記事には、記事ごとのcomment_statusが保存されています。WordPress 3.4.1のcomments_open()は、comment_statusがopenかどうかを基本値とし、その後にフィルターを適用して受付可否を返します。
一件だけ変えるなら、投稿編集画面右上の「表示オプション」で「ディスカッション」を表示し、その欄で「コメントの投稿を許可する。」を外します。表示オプションの公式コードと編集欄の公式コードで、画面の役割と投稿ごとのcomment_statusを確認できます。
複数の記事を変えるなら、投稿一覧で対象記事を選び、一括編集を開きます。コメントを「許可しない」に変えて更新します。WordPress 3.4.1の投稿一覧処理には、一括編集のComments欄にAllowとDo not allowが用意されています。
記事数が多い場合も、最初から全件を選びません。数件で受付状態と公開画面を確認してから、残りへ広げます。コメントを受け付ける記事が必要なら、その記事を対象から外します。
コメント受付とリンク通知の受付は別に閉じる
ディスカッション設定には、コメントのdefault_comment_statusとは別に、リンク通知を受け付けるdefault_ping_statusがあります。投稿の編集画面でも、comment_statusとping_statusは別の項目です。
コメントを閉じただけでは、ピンバックとトラックバックの設定を変更したことにはなりません。リンク通知も不要なら、新しい投稿の既定値と既存記事のping_statusをそれぞれ確認します。
自分の記事からリンクした相手へ通知を試みる設定も、受信設定とは別です。コメント、外部から届くリンク通知、自分から送る通知を、一つの「コメント機能」としてまとめて変更しないようにします。
受付を閉じても既存コメントは消えない
comment_statusをclosedへ変える操作は、新しいコメントの受付を閉じます。すでに保存されているコメントを削除する操作ではありません。
受付終了後も既存コメントを読めるようにするか、公開画面から隠すか、削除するかは別の判断です。削除すると内容を戻せなくなる場合があるため、受付を閉じる作業に混ぜません。必要なら、残すコメントと削除するコメントを確認してから別に処理します。
テーマは、既存コメントの一覧と新規コメント用フォームを別に出力できます。そのため、受付を閉じてフォームが消えても、既存コメントは表示されることがあります。既存コメントの表示だけでは、受付中かどうかは判断できません。記事のcomment_statusと公開画面の表示を分けて確認します。
テーマからフォームを隠すだけでは受付状態は変わらない
コメント欄をCSSで見えなくしたり、テーマからフォームの出力を外したりしても、記事のcomment_statusは変わりません。表示を消す作業と、WordPress側で受付を閉じる作業は別です。
先に、新しい投稿の既定値と既存記事のcomment_statusを、それぞれ閉じます。そのうえで、既存コメントの見せ方や「コメントは受け付けていません」という表示がサイトに合わない場合だけ、テーマを調整します。見た目から直すと、管理画面では受付中のまま残った記事を見落とします。
まず、ディスカッション設定で新しい投稿の既定値を確認してください。次に、既存記事を一件だけ開いてcomment_statusを閉じ、ログアウトした状態の公開画面でフォームと既存コメントの表示を確認します。その結果を決めてから、一括編集の対象を広げます。
関連記事

