コメント欄を完全に非表示にする方法(タイプ別に制御)

WordPress では投稿や固定ページにコメント欄を表示できますが、サイトの用途によっては「コメント不要」というケースも多いです。
例えば会社サイトや商品紹介ページなどでは、コメント欄があると逆に分かりにくいこともあります。

コピペの注意:
本記事には複数のケース別サンプルコードがあります。
全部をそのままコピーするのではなく、必要なケースだけコピーして functions.php に追加してください。

今回は「投稿タイプ別にコメント欄を完全に非表示にする方法」を紹介します。初心者でも使いやすいように、用途別のサンプルコードをまとめました。

実装のポイント

  • PHPで無効化する場合 → コメント機能そのものを停止できます。
  • CSSで非表示にする場合 → 見た目だけ隠す方法です(機能は生きています)。
  • 管理者は見たいけどユーザーには表示したくない → 条件分岐で実現可能です。

functions.php にコードを追加

ケース1: 固定ページだけコメント無効化したい


add_action('init', function() {
    if (post_type_exists('page')) {
        remove_post_type_support('page', 'comments');
        remove_post_type_support('page', 'trackbacks');
    }
});
    

ケース2: 投稿ページだけコメント無効化したい


add_action('init', function() {
    if (post_type_exists('post')) {
        remove_post_type_support('post', 'comments');
        remove_post_type_support('post', 'trackbacks');
    }
});
    

ケース3: 固定ページと投稿ページの両方をコメント無効化したい


add_action('init', function() {
    foreach (['post', 'page'] as $type) {
        if (post_type_exists($type)) {
            remove_post_type_support($type, 'comments');
            remove_post_type_support($type, 'trackbacks');
        }
    }
});
    

ケース4: カスタム投稿タイプ「news」で無効化したい


add_action('init', function() {
    if (post_type_exists('news')) {
        remove_post_type_support('news', 'comments');
        remove_post_type_support('news', 'trackbacks');
    }
});
    

ケース5: 管理者はコメントを見たいが、ユーザーには表示しない


add_action('wp', function() {
    if (!current_user_can('administrator')) {
        add_filter('comments_array', '__return_empty_array'); // コメント一覧を空にする
        add_filter('comments_open', '__return_false');        // コメント投稿を無効化
    }
});
    

ケース6: 管理画面からもコメント項目を完全に隠したい


add_action('admin_menu', function() {
    remove_menu_page('edit-comments.php'); // 管理画面の「コメント」を非表示
});
    
補足:
PHPで無効化すると、そもそもコメント機能が利用できなくなります。
CSSで非表示にする方法は「一時的に隠したい」「テーマを壊さずに簡単に対応したい」時に便利ですが、コメント自体は残ってしまいます。

汎用CSS


/* コメント欄を非表示 */
#comments,
.section-comments,
.comment-respond {
    display: none !important;
}
    

テーマ別サンプルCSS

Lightning用


/* Lightningのコメント欄を非表示 */
#comments,
.section-comments,
.comment-area {
    display: none !important;
}
    

Cocoon用


/* Cocoonのコメント欄を非表示 */
#comments,
.comment-area,
.comment-respond {
    display: none !important;
}
    

投稿タイプとは?

WordPress には記事の種類を分けるための仕組みがあり、これを「投稿タイプ」と呼びます。

投稿タイプ 説明
post 通常のブログ投稿記事
page 固定ページ(会社概要、お問い合わせなど)
attachment メディア(画像・PDF など)
custom post type 開発者が追加する投稿タイプ(例:news、event、product など)

代用プラグイン

コード編集が不安な方はプラグインを使う方法もあります。

  • Disable Comments – 全体的にコメント機能を無効化
  • No Page Comment – 投稿タイプごとにコメント設定を制御

注意: プラグインを使う場合は、更新状況やWordPressのバージョン対応を確認してください。

まとめ

コメント欄を非表示にするには大きく「PHPで機能ごと止める」「CSSで見た目だけ隠す」の2つの方法があります。
初心者の方はまず「固定ページだけ無効化」などシンプルなケースから試すのがおすすめです。
サイトの用途に合わせて最適な方法を選びましょう。