wordpressで閉じられたコメントを復活させる方法を解説していきます。
WordPressの閉じられたコメントとは
WordPressには指定日数が経過したらコメント欄を自動的に閉じる。つまりコメント欄を表示させないようにする設定が存在します。
WordPressのディスカッション設定で「X日以上前の投稿のコメントフォームを自動的に閉じる」という項目のチェックをつけているとコメント欄は指定日数経過後に閉じられます。

わたしはチェックをつけてしまっていたので、過去記事のコメント欄が閉じられていることに気づきました。現在の方針としてはユーザーにどんどんコメントしてもらったほうがコンテンツ量も増えるのでコメント欄はオープンにしたいと思いました。
コメント欄のオープンとクローズはデータベースではどのように管理されているのか
コメント欄が閉じられているかどうかは、wordpressのpostsテーブルで管理されており、このテーブルの「comment_status」というカラムで管理されています。
絶対にやってはいけない方法!!!→×
WordPressのコメント欄をオープンにするときに絶対にやってはいけない方法を書きます。
それはWordPressのAPI経由でコメントをオープン状態に戻すことです。
このコードを見てください↓ただし絶対に実行しないでください。
function enable_comments_on_all_posts() {
$args = array(
'post_type' => 'post', // 投稿タイプ(ページの場合は 'page' に変更)
'posts_per_page' => -1, // 全ての記事を対象にする場合は -1
);
$posts = get_posts($args);
foreach ($posts as $post) {
// コメントを許可にする
$post->comment_status = 'open';
wp_update_post($post);
}
}
add_action('init', 'enable_comments_on_all_posts');
このコードを実行してしまうとAPI経由で大量にリクエストが送られてるのでサーバーが過負荷になってしまい503エラーが発生します。ですのでこの方法は絶対にやってはいけません。
データベースでクエリ操作を行い、すべての記事のコメント欄をオープンに戻す
WordPressのすべての記事のコメント欄をオープンに戻す場合はデータベースにアクセスしてクエリ操作を行いコメントをオープン状態に戻します。
具体的にはまず「phpmyadmin」にアクセスして
以下のクエリをデータベースで実行します。
UPDATE `wordpressのpostsテーブル名` SET `comment_status` = 'open'
「wordpressのpostsテーブル名」のところは自分が使っているテーブル名に変えてください。
注意点としてデータベースから直接クエリ操作を行う場合は失敗したら元に戻せないということです。というか成功しても元に戻せません。なので不安がある方は基本的にはデータベースを直接操作しないほうがいいかと思います。
WordPressの記事編集画面でコメントを許可することもできます
私の場合は大量の記事に対してコメント欄をオープンするためにデータベーステーブルを書き換えましたが、記事が少ない場合WordPressの記事編集画面でコメントをオープン(許可)状態にすることができます。
具体的には記事編集画面に「ディスカッション」という項目があるので「コメントを許可」にチェックをつけて記事を更新してください
まとめ
WordPressの閉じられたコメントを元に戻したい場合は、データベースにアクセスしクエリを入力してpostsテーブルのcomment_status列をすべて「open」にしてください。
コメント