コメント欄を完全に非表示にする方法(タイプ別に制御)
目次
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で非表示にする方法は「一時的に隠したい」「テーマを壊さずに簡単に対応したい」時に便利ですが、コメント自体は残ってしまいます。
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つの方法があります。
初心者の方はまず「固定ページだけ無効化」などシンプルなケースから試すのがおすすめです。
サイトの用途に合わせて最適な方法を選びましょう。


