WordPress+Contact Form 7でマルチステップフォームを実装していると、
「ローカルでは正常に動くのに、サーバーにアップすると動かない」
「フォームは表示されるけど、Step2に進めない」
「送信ボタンを押しても反応しない」
……といったトラブルが、実はたびたび起こります。

なぜか毎回どこかでつまづいてるな〜…😭
ローカルでは問題なかったのに、サーバーにアップしたら急に動かない…
エラーも何が原因かわかりにくいし、結局「なんか直った」で済ませてたけど、今回は原因がバチッと特定できた!ので備忘録として残します✍️
この記事では、そんな自分の経験をもとに、実際にハマった原因と解決策をまとめつつ、
再発防止のチェックポイントもあわせて記録していきます。
主なトラブル内容(今回のケース)
- マルチステップフォームをローカルで構築し、正常動作を確認
- サーバーにアップ後、Step1のフォーム送信時に何も起こらない(Step2に遷移しない)
- コンソール上のエラー:
"this form has been removed or is currently unavailable."
原因と解決策(今回のケース)
原因:reCAPTCHAが対象ページで読み込まれていなかった
以前、視認性の都合でTOPページなどにreCAPTCHAを表示させないよう設定していたため、
マルチステップフォームの新たに追加した「入力ページ(例:ID2450)」にreCAPTCHAが適用されず、送信時にエラーが発生していました。
上記設定は、以下の記事でも紹介していた通り:


functions.php で「特定ページのみreCAPTCHAを有効にする」設定をしていたが、 マルチステップフォームの入力ページ(例:ID2450)が対象に入っていなかった。
add_action('wp_enqueue_scripts', function() {
if (is_page(123) || is_admin()) {
return; // お問い合わせページ・ログインページ・管理画面ではスクリプトを読み込む
}
wp_deregister_script('google-recaptcha'); // それ以外のページでは解除
}, 100);
これはつまり:
- 「ページIDが123のとき」だけ reCAPTCHA を読み込む
- それ以外のページでは強制的に読み込みを解除する(=reCAPTCHA効かない)
予約フォームページがページID 123じゃないなら、
reCAPTCHAスクリプトが読み込まれない → Contact Form 7がreCAPTCHA依存で送信をブロックする → 送信失敗になる
という流れが完全に当てはまります。
解決策:ページIDを追加
予約フォームページのIDが仮に 2450
だったら、下記のように追記すればOK
if ( is_page([123, 2450, 2452, 2455]) || is_admin() ) {
return;
}
→ これで入力ページでもreCAPTCHAが正しく動作し、送信が正常に行えるようになりました!
WordPress管理画面で固定ページ一覧を開いて、予約フォームの編集画面に入り、
URL末尾の post=2450
のような数字がそのページのIDです。
その他、過去に起こった原因やチェックポイント(落とし穴リスト)
チェック項目 | 内容 | 対応方法 |
---|---|---|
フォームID・スラッグの記述ミス | first_step のURLが間違っている、存在しないIDを指定している | Contact Form 7のID/固定ページのスラッグを再確認 |
マルチステップショートコードがdivタグで囲まれている | テーマやJSによっては正しく動作しないことがある | うまく動かない場合は一度、ラップなしで試してみる |
JavaScript/CSSのキャッシュ | サーバーやブラウザに古いコードが残っている | 強制リロード(Ctrl+F5)やサーバーキャッシュ削除 |
FlatpickrなどJSとの競合 | JSが多重に読み込まれている、初期化が早すぎる | 読み込み順・対象セレクタ・エラー出力をチェック |
reCAPTCHAの読み込み漏れ | 除外設定していて必要なページに読み込まれていない | functions.php で対象ページのIDを追加する |
WAF(Web Application Firewall) | サーバー側でフォーム送信がブロックされている | WAFを一時無効にして確認、必要なら設定調整 |
コピペ時の全角スペース・引用符 | "first_step" などの記述が全角に変わってしまう | 手動で再入力して確認する |
固定ページが公開状態でない | 下書きや非公開になっていて遷移できない | ステップ用のページが「公開」になっているか確認 |
Contact Form 7のマルチステップフォームは便利だけど、設定ミスや環境差によって思わぬところで動かなくなることがあります。
この記事は、つまづいたときに読み返す用の自分メモとして更新していきます。
同じように困っている方のヒントにもなれば嬉しいです!