2026年5月24日
2026年5月24日
WordPressでコメントが投稿できない・エラーになるときの原因と対処法
WordPress でコメントが投稿できないとき、原因は「WordPress がエラーを返している」「送信はできたが承認待ちになっている」「フォーム自体が出ていない」「サーバーやプラグインが送信を止めている」のどれかに分かれます。表示されるメッセージで原因を絞り込めるので、まずメッセージを確認します。
この記事のメッセージと動作は、2026年11月時点の WordPress 7.1.3(日本語)で実際にコメントを送信して確かめたものです。
手順1: エラーメッセージから原因を特定する
コメントの送信先は wp-comments-post.php です。WordPress が送信を受け付けなかった場合は「コメント送信失敗」というページにメッセージが表示されます。
| 表示されるメッセージ | HTTP ステータス | 原因と対処 |
|---|---|---|
| エラー: 必須項目を入力してください。 | 200 | 名前かメールアドレスが空。「コメントの投稿者の名前とメールアドレスの入力を必須にする」がオンのときに出る |
| エラー: 有効なメールアドレスを入力してください。 | 200 | メールアドレスの形式が正しくない |
| エラー : コメント文を入力してください。 | 200 | コメント本文が空 |
| エラー: コメントが長すぎます。 | 200 | 本文が長すぎる(データベースの列に入る長さを超えている) |
| 重複しているコメントが見つかりました。同じコメントをすでに投稿しているようです。 | 409 | 同じ投稿に同じ内容のコメントがすでにある。二重送信も含む |
| コメントを急いで投稿し過ぎているようです。もう少しゆっくりお願いします。 | 429 | 前のコメントから15秒以内に続けて送信した |
| この投稿へのコメントは受け付けていません。 | 403 | その投稿のコメントが閉じられている(手順3) |
| コメントするにはログインする必要があります。 | 403 | 「ユーザー登録してログインしたユーザーのみコメントをつけられるようにする」がオン |
連続投稿の制限(15秒)は、同じ IP アドレス(ログイン中は同じユーザー)または同じメールアドレスからの投稿に対して働きます。コメントを管理できる権限(管理者や編集者)でログインしているユーザーには働きません。
ここに無い画面(サーバー会社のエラーページ、真っ白な画面、「403 Forbidden」だけの画面など)が出る場合は、WordPress より手前で止められている可能性が高いので、手順4へ進みます。
ブラウザーの開発者ツールの「ネットワーク」タブで wp-comments-post.php への POST の結果を見ると、ステータスコードを確認できます。正常に受け付けられたときは 302 で投稿ページへ移動します。
手順2: 送信できたのに表示されない場合は「承認待ち」を確認する
送信後に投稿ページへ戻り、コメントの位置に「あなたのコメントは管理者の承認待ちです。これはプレビューで、コメントは承認後に表示されます。」と出ていれば、送信は成功しています。承認されるまでほかの訪問者には表示されません。
管理画面の「コメント」を開き、「承認待ち」の一覧にあるコメントの「承認」をクリックすると公開されます。
初期設定では、次の「ディスカッション設定」(「設定」→「ディスカッション」)により、承認待ちになることがあります。
| 設定 | 初期値 | 承認待ちになる条件 |
|---|---|---|
| すでに承認されたコメントの投稿者のコメントを許可し、それ以外のコメントを承認待ちにする | オン | 過去に承認されたコメントがない人の投稿(初めての人のコメントは承認待ち) |
| コメントの手動承認を必須にする | オフ | オンにするとすべてのコメントが承認待ち |
| 承認待ちにする前にコメント内で許可するリンクの数 | 2 | 本文と URL 欄のリンクが2個以上 |
| コメントモデレーション(単語の一覧) | 空 | 一覧の単語を含むコメント |
「コメント内で許可されないキーワード」に一致したコメントは、承認待ちではなくゴミ箱に入ります。Akismet などのスパム対策プラグインを使っている場合は、「コメント」の「スパム」にも入っていないか確認します。
WP-CLI では次のように確認・承認できます。
# 承認待ちのコメントを一覧表示
wp comment list --status=hold --fields=comment_ID,comment_post_ID,comment_author,comment_date
# コメント ID 123 を承認する
wp comment approve 123
# 関係する設定の値を確認する(1=オン、0=オフ)
wp option get comment_previously_approved
wp option get comment_moderation
wp option get comment_max_links
手順3: コメント欄が表示されない・閉じている場合
コメントフォーム自体が出ない、または「コメントは受け付けていません。」と表示される場合は、次を確認します。
- 投稿ごとの設定: 「投稿」→「投稿一覧」で対象の投稿の「クイック編集」を開き、「コメントを許可」にチェックが入っているか確認します。ブロックエディターでは、投稿の設定サイドバーの「ディスカッション」で変更できます。
- 古い投稿のコメントを自動的に閉じる: 「設定」→「ディスカッション」の「古い投稿のコメントを自動的に閉じる」がオンだと、指定した日数(入力欄の初期値は14日)を過ぎた投稿のコメントが閉じます。
- 新しい投稿の初期値: 「新しい投稿へのコメントを許可する」は、これから作る投稿の初期値です。変えても既存の投稿には反映されません。
- テーマ: テーマのテンプレートにコメント欄(クラシックテーマの
comments_template()、ブロックテーマの「コメント」ブロック)が無いと、設定が開いていてもフォームは出ません。
WP-CLI では投稿ごとの状態を確認・変更できます。
# 投稿のコメントの状態(open / closed)を確認
wp post list --post_type=post --fields=ID,post_title,comment_status
# 投稿 ID 45 のコメントを開く
wp post update 45 --comment_status=open
手順4: WordPress より手前で止まっている場合(WAF・プラグイン)
上の表に無い画面が出る場合や、送信しても何も起きない場合は、次の順に確認します。
- サーバーの WAF: レンタルサーバーの WAF(Web アプリケーションファイアウォール)は、コードや URL を含むコメントを攻撃と判定して 403 を返すことがあります。サーバーのコントロールパネルで WAF のログを見て、
wp-comments-post.phpへの送信が記録されていないか確認します。誤検知であれば、該当するルールだけを除外する設定ができるかサーバー会社の案内を確認します。 - セキュリティ・スパム対策プラグイン: コメントに画像認証などを追加するプラグインは、その確認に失敗すると送信を止めます。プラグインの設定とログを確認します。
- プラグインやテーマの競合: 本番で一つずつ停止するのが難しい場合は、公式プラグイン「Health Check & Troubleshooting」のトラブルシューティングモードを使うと、自分のログインセッションだけでプラグインを停止した状態を試せます。
- PHP のエラー: 白い画面になる場合は、
wp-config.phpでWP_DEBUGとWP_DEBUG_LOGを有効にし、wp-content/debug.logに出るエラーを確認します。確認が終わったら元に戻します。
<?php
// wp-config.php の require_once ABSPATH . 'wp-settings.php'; の行より上に書く
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); // エラーを画面には出さない
コメントが届いたことに気づけるようにする
「設定」→「ディスカッション」の「自分宛のメール通知」で「コメントが投稿されたとき」「コメントがモデレーションのために保留されたとき」をオンにしておくと、承認待ちのコメントを放置しにくくなります。通知メールが届かない場合は、サイトのメール送信の設定を確認してください。