「お客様の声」や商品レビューは、小売ECの購入意思決定に大きな影響を与える要素のひとつです。ところが実際のサイト運用を見ていくと、コメント欄は初期設定のまま放置されているか、逆にスパム対策を理由に一律でオフにされているケースが少なくありません。どちらの状態も、UGC(ユーザー生成コンテンツ)による社会的証明という武器を活かせていない点で共通しています。
WordPressには、投稿ごとにコメント(=レビューやお客様の声)欄が開いているかどうかを判定する comments_open() という条件分岐タグが用意されています。単体では地味な関数ですが、投稿タイプやカテゴリ、商品の属性ごとにコメント欄の出し分けを設計するための起点として使うと、UGC活用の設計図がぐっと具体的になります。
この記事では、comments_open() の正確な仕様を確認したうえで、小売事業者向けのWordPressサイトにおいて、レビュー・お客様の声欄をどう設計し、社会的証明とインバウンド集客の両方に活かすかを解説します。単なる関数解説にとどまらず、運用フローや判断軸まで含めて整理します。
comments_open()が小売ECの集客で重要になる理由
小売ECにおいて、購入前の比較検討フェーズで最も参照されやすい情報のひとつが「他の購入者の声」です。価格や機能説明は売り手側の主張として受け取られやすい一方、レビューやお客様の声は第三者の評価として信頼されやすく、いわゆる社会的証明として機能します。この社会的証明が弱いページは、どれだけ商品説明を作り込んでも離脱されやすくなります。
一方で、コメント機能はWordPressの標準機能としては汎用的すぎるため、そのまま使うと「スパムコメントだらけになる」「本文と関係のない質問が入り込む」「承認作業が追いつかない」といった運用上の悩みが発生しがちです。結果として、多くのサイト運用者は思考停止的にコメント欄自体を非表示にしてしまい、UGCの機会そのものを失っています。
comments_open() を軸にすれば、こうした「全部オンか全部オフか」の二択から抜け出し、投稿タイプ・カテゴリ・商品の性質ごとにコメント欄の要否を判断する設計に移行できます。これは技術的な話であると同時に、コンテンツマーケティングとしての意思決定でもあります。
- レビュー・お客様の声は購入意思決定に直結する社会的証明である
- コメント機能を一律オン/オフにすると機会損失か運用崩壊のどちらかに寄りやすい
- 投稿タイプ・カテゴリ単位でコメント欄の出し分けが必要になる
- UGCは検索エンジンにとっても更新性・独自性のシグナルになりやすい
comments_open()の役割を実務目線で理解する
comments_open() は、指定した投稿でコメント(レビューやお客様の声を含む)が受け付けられる状態かどうかを判定するWordPressの条件分岐タグです。引数には投稿IDまたはWP_Postオブジェクトを渡せます。省略した場合は、ループ内のグローバルな投稿(現在表示中の投稿)が対象になります。戻り値は真偽値(true/false)です。
if ( comments_open() ) {
// 現在の投稿でコメント(レビュー)欄を表示する
comment_form();
} else {
echo '現在この商品ページへのレビュー投稿は受け付けていません。';
}
投稿IDを明示的に指定すれば、ループの外や別の投稿を対象に判定することもできます。例えば、関連商品カードの中で「レビュー受付中」バッジを出し分けたい場合などに使えます。
$related_id = 123;
if ( comments_open( $related_id ) ) {
echo 'レビュー受付中';
}
ここで注意したいのは、comments_open() が判定しているのは「投稿ごとのcomment_status(open/closed)」と「サイト全体のディスカッション設定」を組み合わせた実効的な状態である点です。管理画面の「設定 > ディスカッション」でサイト全体のデフォルトを決めていても、個別投稿の編集画面で「コメントを許可」のチェックを外していれば、その投稿ではfalseになります。逆に、投稿単位で許可していてもテーマやプラグインが ‘comments_open’ フィルターでfalseを返すように上書きしていれば、実際にはコメントは閉じた扱いになります。
// 特定の投稿タイプではコメントを一律で閉じるアンチパターンの例
add_filter( 'comments_open', function( $open, $post_id ) {
if ( get_post_type( $post_id ) === 'product_review' ) {
return false;
}
return $open;
}, 10, 2 );
このようなフィルターは強力ですが、レビュー欄を主戦力にしたい投稿タイプに対して誤って適用してしまうと、UGCの入り口そのものを塞いでしまいます。comments_open() を使った条件分岐を実装する際は、「どの投稿タイプ・カテゴリでコメントを開けたいのか」を先に言語化してから実装に落とすことが重要です。単に管理画面のチェックボックスに任せきりにすると、意図と実装がズレたまま運用が固定化されてしまうアンチパターンに陥りやすくなります。
運用イメージ(架空パターン)
ここでは理解を深めるために、あくまで仮のケースとして運用イメージを描いてみます。例えば、キッチン雑貨を中心に扱う小売ECサイトを運営している仮のB社があるとします。B社では、通常の投稿タイプ「post」に加えて、商品紹介用のカスタム投稿タイプ「kitchen_item」を運用しているとします。
B社の担当者は、すべての投稿タイプでコメントを一律開放していた結果、スパムコメントの承認作業に日々の運用時間を取られていたとします。そこで、まず投稿タイプごとの方針を整理し、「kitchen_item(商品紹介)」はレビュー・お客様の声として積極的にコメントを開放する一方、「post(コラム記事)」はコメントを閉じ、SNSでの反応を主なフィードバック経路とする、という仮の方針を決めたとします。
この方針をcomments_open() とテンプレート側のロジックで実装し、投稿タイプ単位でコメントフォームの表示・非表示を切り替えたとします。あわせて、kitchen_itemのコメントは承認制にし、投稿時に「使ってみた感想」を促す一文をコメントフォームの近くに添えたとします。
このような仮の運用に切り替えた場合、承認作業の対象がkitchen_itemに限定されることで運用負荷が下がりやすく、また商品紹介ページに集まったコメントが購入検討中の読者にとっての判断材料として機能しやすくなる、と考えられます。あくまで仮のシナリオですが、投稿タイプ単位での出し分けが運用設計にどう効いてくるかのイメージとして参考にしてください。
実装・運用の進め方
- 投稿タイプ・カテゴリごとにコメント欄の方針を洗い出す
- comments_open() を使ったテンプレート側の出し分けロジックを実装する
- 承認制コメントとスパムフィルターの設定を見直す
- コメントフォーム周辺の文言をレビュー投稿を促す内容に調整する
- 外部レビュープラットフォームとの役割分担を文書化する
- 定期的にコメント内容を棚卸しし、二次活用先を検討する
社内で持つべき判断軸
- どの投稿タイプ・カテゴリでコメントを社会的証明として使いたいか
- 承認作業にどの程度の運用工数を割けるか
- 外部レビュープラットフォームとの役割はどう分担するか
- 収集したコメントをどのコンテンツに二次活用するか
成果測定で見るべき指標
- コメント(レビュー)が付いた投稿とそうでない投稿のCV率の差
- コメント欄を開放している投稿の直帰率・滞在時間
- スパムコメントと有効コメントの比率
- 承認から公開までの平均所要時間
- コメントを二次活用したコンテンツの流入・反応
よくある質問
comments_open()とget_comments_number()の違いは何ですか
comments_open()はコメントを新規に受け付けられる状態かどうかを判定します。一方get_comments_number()はその投稿に付いているコメント件数を取得する関数で、役割が異なります。表示済みコメント数の表示と、フォームの出し分けは別のロジックとして扱う必要があります。
投稿タイプによってコメントの受付可否を分けることはできますか
はい。comments_open()とget_post_type()を組み合わせてテンプレート側で分岐させれば、投稿タイプごとにコメントフォームの表示可否を制御できます。管理画面の個別設定に頼らず、一元的にルールを実装できます。
標準のコメント機能を商品レビューとして使うのは技術的に無理がありますか
無理はありませんが、星評価や画像アップロードなどレビューらしいUIを実現するには追加の実装やプラグインが必要になることが多いです。シンプルな自由記述のお客様の声であれば、標準機能でも十分機能します。
スパムコメント対策はcomments_open()だけで十分ですか
不十分です。comments_open()はあくまで「開く/閉じる」の判定であり、スパム対策自体はAkismetなどのフィルタリングツールや承認制の運用と組み合わせる必要があります。
外部レビューサービスを使っていてもWordPressのコメント機能は必要ですか
必須ではありませんが、購入前の質問対応や、使い方に関するやり取りなど、外部レビューではカバーしきれないコミュニケーションの受け皿として使う価値はあります。役割を分けて設計するのが望ましいです。
コメント欄を後から閉じても既存のコメントは消えますか
comments_open()の判定を変えても既存のコメントデータは削除されません。表示中のコメント一覧はそのまま残り、新規投稿の受付のみが制御される形になります。
まとめ
comments_open() は小さな条件分岐タグですが、小売ECにおけるレビュー・お客様の声というUGC施策を、投稿タイプやカテゴリ単位で意図的に設計するための起点になります。全面開放でも全面閉鎖でもない、方針に基づいた出し分けを実装することで、社会的証明を強化しながら運用負荷を抑えることができます。まずは自社サイトのどの投稿タイプでコメントを開放すべきかを棚卸しするところから始めてみてください。

コメント