【Contact Form 7の必須項目が効かない】送信ボタンを直す前に確認する3つのこと
この記事の結論
必須項目が効かないときは、フォームタグ・公開ページ・キャッシュを分けて確認します。
Contact Form 7で「必須項目を入れたのに送れない」「必須ではないはずの欄で止まる」ときは、送信ボタンやプラグインを入れ直す前に、フォームの定義・画面上の表示・キャッシュを順に分けて確認します。原因を混ぜて触ると、直ったように見えて同じ設定を壊しがちです。
まず確認したい結論
必須チェックが想定どおり動かないときは、(1) フォームタブのタグ、(2) 実際に公開ページに出ている入力欄、(3) キャッシュ後の画面、の3か所を別々に見ます。メール設定の不具合とは切り分けると、問い合わせを止める時間を短くできます。
1. フォームタブで「必須」の指定と入力名を確認する
Contact Form 7では、フォームタブに置いたタグが入力欄の仕様です。必須項目はタグにアスタリスクが付く形式で作られます。編集画面でタグを増やしたりコピーしたあとに、ラベルだけを変えてタグ名を取り違えると、利用者には別の欄が必須に見えることがあります。
- 必須にしたい欄のタグに必須指定があるか
- 同じタグ名を別の入力欄で重複して使っていないか
- ラベルの説明と、実際に必須になっている欄が一致しているか
ここではメールタブを先に触りません。通知メールが届かない問題は、Contact Form 7のメール設定を確認する記事で別に切り分けています。
2. 公開ページで、どの欄にエラーが出ているかを確認する
管理画面のフォームが正しくても、公開中のページには古いショートコードや別フォームが残っている場合があります。シークレットウィンドウなどログイン状態に左右されにくい画面で、空欄のまま送信し、どの項目の近くにエラーが出るかを確認します。
エラー文だけで判断せず、フォーム内の各欄と照らします。「同意チェック」「選択肢」「電話番号」のように一見入力済みに見えにくい項目も、一度選び直してください。送信完了後の自動返信が届かないときは、自動返信メールの確認記事を続けて参照すると原因を分けられます。
3. キャッシュを消して、変更後のフォームで再確認する
フォームを更新しても、ブラウザ・キャッシュプラグイン・配信側のキャッシュに古いHTMLが残ると、管理画面の内容と公開画面が一致しません。変更内容を控えたうえで、サイト側のキャッシュを削除し、別の端末またはシークレットウィンドウで再度送信します。
このとき、複数の設定を同時に変えないのが大切です。フォームタグを直した直後にメール設定まで変えると、どの変更で改善したのか追えなくなります。
それでも直らないときの見方
特定のフォームだけで起きるなら、そのフォームのタグ・ショートコード・キャッシュを優先します。すべてのフォームで起きるなら、テーマや最適化機能が入力欄の表示を変えていないかを確認します。問い合わせ自体は送れているのに通知だけが届かない場合は、迷惑メールも含めてWordPressの通知メール確認へ進みます。
まとめ
必須項目の不具合は、送信ボタンより先にフォームタグ、公開画面、キャッシュの順で見ると整理できます。管理画面だけで完結させず、実際の問い合わせページで一度送信を試してから次の設定へ進みましょう。