はじめに

投稿と固定ページでコメント機能のデフォルト設定に違いがあります。
投稿の場合、管理画面の設定→ディスカッション→「新しい投稿へのコメントを許可」をオンにしておくと、新規に投稿を作成する際、編集画面のディスカッション設定は自動的に「受付中」となります。
しかし、固定ページはデフォルトでコメントが「受け付けません」となっているため、新規作成時に個別でディスカッションを許可しない限り、コメント欄は表示されません。
そのため、Cocoon設定→コメント設定→コメント表示するをオンにしても、コメント欄は表示されません。
そこで、固定ページのディスカッション設定に関わらず、Cocoon設定に従うように変更します。
この記事では、この方法について説明します。
実装手順
以下のコードをfunctions.phpに追加します。
add_filter('comments_open', function ($open, $post_id) {
$post = get_post($post_id);
if ($post && $post->post_type === 'page') {
$open = (bool) is_page_comment_visible();
}
return $open;
}, 10, 2);
さいごに
今回紹介した方法を使えば、固定ページのコメント設定に関わらず、Cocoon設定の条件に従ってコメント欄を「受付中」に変更することができます。
これにより、既存ページや新規作成ページでもコメント機能を統一的に有効化でき、管理の手間を減らすことが可能です。

