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

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

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

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

1 実装のポイント

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

2 functions.php にコードを追加

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


// ------------------------------
// 固定ページだけコメント無効化
// ------------------------------

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

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


// ------------------------------
// 投稿ページだけコメント無効化
// ------------------------------

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

2.3 ケース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');
        }
    }
});
    

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


// ------------------------------
// カスタム投稿タイプ「news」で無効化
// ------------------------------

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

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


// ------------------------------
// 管理者はコメントを見たいが、ユーザーには表示しない
// ------------------------------

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

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


// ------------------------------
// 管理画面からもコメント項目を完全に隠したい
// ------------------------------

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

3 汎用CSS


/* -----------------------------
 * コメント欄を非表示
 * ----------------------------- */

#comments,              /* デフォルトのコメント欄全体 */
.section-comments,      /* Lightningなどテーマで使われるコメントセクション */
.comment-respond {      /* コメント入力フォーム */
    display: none !important; /* 強制的に非表示にする */
}
    

4 投稿タイプとは?

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

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

5 代用プラグイン

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

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

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

6 まとめ

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