
Contact Form 7には、送信後に別ページ(サンクスページ)へ自動で移動させる設定項目が標準では用意されていません。そのため、少しだけ工夫が必要です。しかも、ネット上に残る古い方法の多くは現在のバージョンでは動作しないため、遠回りしてしまう人が多いのが実情です。
この記事では、次のことがわかります。
- 現行バージョンで確実に動く、公式推奨のJavaScript(wpcf7mailsent)でのリダイレクト方法
- コードを書かずにGUIだけで設定できるプラグイン「Redirection for Contact Form 7」の使い方
- なぜ古い「on_sent_ok」が使えなくなったのか、そもそも導入すべきかの判断材料
目次
Contact Form 7に「送信完了画面(サンクスページ)」への標準機能はある?
まず結論からお伝えすると、Contact Form 7には「送信後に指定したページ(サンクスページ)へ自動でジャンプさせる」という設定項目が、標準では用意されていません。
そもそもフォーム自体をまだ設置していない方は、先に【WordPress】お問い合わせフォームの設置方法(Contact Form 7)で基本の設置を済ませておくと、この記事の内容がスムーズに理解できます。
なお本記事の手順は、WordPress 7.0 + Contact Form 7 v6.1.6 の組み合わせで実際に動作確認済みです(2026年7月時点)。Contact Form 7は有効インストール数1,000万を超える定番プラグインで、開発者は日本人の「Takayuki Miyoshi」氏です。
デフォルトでは同じページ内にメッセージが出るだけ
Contact Form 7で送信ボタンを押すと、フォームのすぐ下に「ありがとうございます。メッセージは送信されました。」という完了メッセージがその場に表示されます。ページは移動しません。
この動作はシンプルで扱いやすい反面、「送信が完了したことをもっとはっきり伝えたい」「専用のサンクスページに誘導して次のアクション(資料ダウンロードやSNSフォローなど)を促したい」といった目的には物足りなく感じることがあります。
「サンクスページへの遷移」を実現する2つの方法
標準機能がない以上、サンクスページへの遷移は次の2つのいずれかで実現します。本記事ではどちらも画像とコード付きで解説します。
- 方法1:JavaScript(wpcf7mailsentイベント)を使う — 公式が案内している標準的な方法。コードを1つ設置するだけ。
- 方法2:プラグイン「Redirection for Contact Form 7」を使う — コードを一切書かず、画面操作だけで設定できる。
【前提】古い「on_sent_ok」を使う方法はもう使えない

結論から言うと、その方法は現在のContact Form 7では動作しません。古い記事に残っている情報を見て設定しても遷移しないのは、そもそも機能が削除されているためです。まずはこの前提を押さえておきましょう。
Contact Form 7 5.0で公式に完全削除された
かつては、フォーム編集画面の「その他の設定」タブ(公式の英語ドキュメントでは「Additional Settings」)に on_sent_ok: や on_submit: と記述することでリダイレクトなどの処理を実行できました。しかしこれらは Contact Form 7 5.0 で公式に完全に削除され、現行の 6.1.6 では記述しても一切動作しません。
公式ドキュメント「Additional Settings」でも、これらの設定は削除済みであり、代わりにDOMイベントを使うよう案内されています(出典: Contact Form 7公式サイト「Additional Settings」)。つまり、これから設定するなら次章以降の方法を使う必要があります。
開発者本人は「サンクスページへのリダイレクトは推奨していない」と明言

公式ドキュメント「Redirecting to another URL after submissions」の中で、開発者の「Takayuki Miyoshi」氏は、「サンクスページ」への「リダイレクト」はごく一部のユーザーにしか必要のない機能であり、積極的には推奨していないと述べています。特に、Googleアナリティクスなどのトラッキング目的でサンクスページへ飛ばす手法は、現在では不要な古い慣習だとしています(出典: Contact Form 7公式サイト「Redirecting to another URL after submissions」)。
それでも導入したい人向けに、動く方法を解説します
とはいえ、「送信できたことをユーザーにはっきり伝えたい」「専用ページで次の行動を案内したい」といった目的でサンクスページを用意したいケースは十分にあります。目的が明確なら、導入する価値は十分あります。
ここから先は、現行バージョンで確実に動く2つの方法を具体的に解説していきます。まずはコードを使う公式推奨の方法から見ていきましょう。
方法1:コードを1つ貼るだけ!wpcf7mailsentイベントでリダイレクトする(公式推奨)

Contact Form 7は、メール送信が完了したタイミングで wpcf7mailsent というイベントをブラウザ上で発生させます。このイベントを検知して、JavaScriptでページを移動させるのが公式が案内している標準的な方法です。順を追って設定していきましょう。
STEP1:リダイレクト先のサンクスページ(固定ページ)を作成する
まずは移動先となるサンクスページを用意します。WordPress管理画面の左メニューから「固定ページ」→「固定ページを追加」をクリックし、タイトルに「お問い合わせありがとうございました」、本文に送信完了のお礼メッセージなどを入力して公開します。

公開したら、そのページのURL(パーマリンク)を控えておきます。次のSTEPでコードに貼り付けるため、ブラウザのアドレスバーに表示されるURLをコピーしておきましょう。
STEP2:wpcf7mailsentイベントのコードを用意する
次に、リダイレクトを実行するJavaScriptを用意します。以下のコードの、URL部分をSTEP1で控えたサンクスページのURLに書き換えてください。
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
setTimeout( function() {
location = 'https://example.com/thanks/'; // ← 自分のサンクスページURLに変更
}, 3000 ); // 送信完了メッセージを3秒表示してから移動
}, false );
</script>
このコードは「メール送信が完了したら(wpcf7mailsent)、3秒待ってから指定URLへ移動する」という動きをします。3秒の待機を入れているのは、標準の完了メッセージをユーザーに一瞬見せてから遷移させるためです。
コード中の 3000 は待機時間をミリ秒(1000=1秒)で指定する部分です。完了メッセージを見せずにすぐ移動させたいなら 0 に、もう少し余韻を持たせたいなら 5000(5秒)などに変更してください。数字を書き換えるだけで待機時間を自由に調整できます。
用意したコードは、サイトのすべてのページで読み込まれる場所に設置します。最も手軽なのは、外観のテーマファイル編集からフッター用ファイルの </body> タグの直前に貼り付ける方法です。
管理画面の「外観」→「テーマファイルエディター」を開き、右側のファイル一覧からフッターのファイルを選択します。多くのテーマでは footer.php という名前ですが、テーマによって名称が異なることがあります(たとえばCocoonテーマでは footer-insert.php)。該当のファイルを開いたら、</body> の直前にSTEP2のコードを貼り付けて「ファイルを更新」をクリックします。
ファイル一覧に footer.php も footer-insert.php のような名前も見当たらない場合は、次に紹介するfunctions.phpの方法(テーマの種類に関わらず使える)に進んでください。
親テーマのフッター用ファイルを直接編集すると、テーマをアップデートした際に変更が上書きされて消えてしまいます。子テーマを利用している場合は子テーマ側のファイルを編集するか、次に紹介するfunctions.phpで出力する方法を使うと、アップデートの影響を受けにくくなります。
STEP4:送信テストして遷移を確認する
設置が終わったら、実際にフォームから送信テストを行います。フォームを設置したページを開き、必要項目を入力して送信ボタンを押してください。
「メッセージは送信されました」と表示された後、設定した秒数だけ待つとサンクスページへ自動的に移動すれば成功です。もし移動しない場合は、うまくリダイレクトされないときのチェックポイントを確認してください。
footer.phpを直接触りたくない場合は、子テーマの functions.php に wp_footer フックを使ってコードを出力する方法もあります。以下を子テーマの functions.php の末尾に追記します。
function my_cf7_redirect_script() {
?>
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
setTimeout( function() {
location = 'https://example.com/thanks/'; // ← サンクスページURLに変更
}, 3000 );
}, false );
</script>
<?php
}
add_action( 'wp_footer', 'my_cf7_redirect_script' );
この方法なら、wp_footer が呼ばれるすべてのページのフッターに自動でコードが出力されます。テーマのHTMLファイルを直接編集しないため、管理しやすいのが利点です。
functions.phpの編集はサイト全体に影響します。記述を1文字でも間違えると画面が真っ白になる(500エラー)ことがあるため、必ず編集前にバックアップを取り、コードは正確にコピーしてください。可能であればFTPやファイルマネージャーで直接編集し、問題があればすぐ元に戻せる状態にしておくと安全です。
方法2:コードを書かずに設定したいなら「Redirection for Contact Form 7」
「コードを触るのは不安」という方には、専用プラグインを使う方法がおすすめです。Redirection for Contact Form 7(WordPress.org公式)を使えば、画面操作だけでリダイレクト先を指定できます。
このプラグインは有効インストール数20万以上、バージョン3.2.10でWordPress 7.0まで動作確認済みの定番プラグインです(2026年5月時点/出典: WordPress.org公式プラグインページ)。
プラグインのインストールと有効化
WordPress管理画面の左メニューから「プラグイン」→「新規プラグインを追加」をクリックします。右上の検索窓に「wpcf7-redirect」(プラグインのスラッグ)と入力すると、複数の候補の中から開発者Themeisleの「Redirection for Contact Form 7」を見つけられます。似た名前のプラグインも表示されるため、カード内の名前と開発者名を確認しましょう。

目的のカードを確認できたら、「今すぐインストール」→「有効化」の順にクリックしてください。
フォーム編集画面に追加される「Actions」タブでリダイレクトを設定する
有効化すると、Contact Form 7のフォーム編集画面(「フォーム」「メール」「メッセージ」「その他の設定」の4タブ)に、英語表記の「Actions」というタブが追加されます(このプラグイン自体は日本語ローカライズがないため、タブ名・設定項目は英語のまま表示されます)。左メニューの「お問い合わせ」→対象のフォームを開き、「Actions」タブをクリックしてください。
「+ Add Action」をクリックすると候補が一覧表示されるので、「Basic Actions」欄の「Redirect」を選びます。追加されたルールの行をクリックすると設定項目が展開されます。
リダイレクト先の指定方法は2通りです。既存の固定ページに飛ばすだけなら「Select a page」のドロップダウンから対象ページを選びます。固定ページ以外の外部URLに飛ばしたい場合は「Use custom URL」のトグルをONにして、表示されたURL欄に直接入力します。「How many seconds to delay」に秒数を入力すれば、JavaScript方式と同じように完了メッセージを数秒見せてから移動させることもできます。設定したら画面下の「保存」をクリックすれば完了です。コードを一切書かずにサンクスページへの遷移を設定できます。

送信テストで遷移を確認する
設定後は、JavaScript方式と同様にフォームから送信テストを行います。送信が完了すると、指定したサンクスページへ移動します。
「How many seconds to delay」に秒数を入力していれば、完了メッセージを見せてから移動するまでの間隔もあわせて確認しておきましょう。
どちらの方法を選ぶべき?(JavaScript vs プラグイン)

2つの方法の違いを、判断しやすいように整理します。
| 比較項目 | 方法1:JavaScript | 方法2:プラグイン |
|---|---|---|
| コードの知識 | 少し必要(コピペ+URL変更) | 不要(画面操作のみ) |
| プラグイン追加 | 不要 | 1つ追加する |
| フォームごとの出し分け | 条件分岐のコードが必要 | フォーム単位で簡単に設定できる |
| 公式の位置づけ | 公式ドキュメントで案内 | 公式ディレクトリ配布の外部プラグイン |
1ページに複数のフォームを設置していて、それぞれ別のサンクスページへ遷移させたい場合は、プラグイン方式が管理しやすくおすすめです。複数フォームの設置自体については【WordPress】フォームを1ページに複数設置する方法(Contact Form 7)で詳しく解説しています。
うまくリダイレクトされないときのチェックポイント
設定したのにサンクスページへ移動しない場合は、次の順番で原因を切り分けていきましょう。
自作テーマ・軽量テーマで完了画面に遷移しない場合
JavaScript方式では、コードが確実にページに出力されていることが前提になります。自作テーマや一部の軽量テーマでは、フッターの出力処理が省略されていることがあり、この場合はコードが読み込まれず遷移しません。
JavaScript方式でうまく動かないときは、まずテーマの footer.php に <?php wp_footer(); ?> の記述があるかを確認してください。この関数がないと、wp_footer フックで出力したコードが読み込まれず、リダイレクトが動作しません。footer.php内の </body> タグ直前に wp_footer() があるかをチェックしましょう。
コードの設置場所・キャッシュを確認する
コードの貼り付け位置が正しいか、URLのスペルミスがないかを改めて確認します。特にサンクスページのURLは、末尾のスラッシュの有無まで含めて正確にコピーできているかチェックしてください。
また、キャッシュ系プラグインやサーバーのキャッシュが効いていると、古い状態のページが表示され、設置したコードが反映されないことがあります。変更後はキャッシュをクリアしてから、ブラウザのスーパーリロード(強制再読み込み)で再確認しましょう。
それでも解決しない場合は他プラグインとの競合を確認する
ここまで確認しても直らない場合は、ほかのプラグインとの競合が原因になっているケースがあります。JavaScriptを扱うプラグインや、フォーム関連の機能を持つプラグインが影響していることがあるため、切り分けをおこないます。
手順としては、Contact Form 7とリダイレクト設定に関係しないプラグインを1つずつ一時的に無効化し、そのつど送信テストを行って遷移するかを確認します。無効化したときに正常に動くようになれば、そのプラグインが原因の可能性が高いと判断できます。原因のプラグインを特定できたら、設定の見直しや代替プラグインの検討を進めましょう。
なお、リダイレクトは動いているのに確認メールが届かない場合は、リダイレクトとは別の問題です。【WordPress】フォームのメールが届かない場合の解決方法(Contact Form 7)を参照してください。
よくある質問(FAQ)
Contact Form 7は無料で使えるの?
はい、完全無料で使えます。WordPress公式のプラグインディレクトリからインストールでき、有料版はありません。本記事で紹介したJavaScript方式・プラグイン方式のどちらも、追加費用なしで導入できます。
Contact Form 7は終了しましたか?
終了していません。2026年5月時点の最新版は6.1.6で、有効インストール数は1,000万以上、WordPress 7.0まで動作確認済みと、現在も活発にメンテナンスされています。「終了した」という噂は、後述の on_sent_ok 廃止(古い方法が使えなくなった件)と混同されている可能性があります。
Contact Form 7とは何ですか?
WordPressで問い合わせフォームを設置できる、最も普及しているプラグインの一つです。発行されるショートコードを固定ページや投稿に貼り付けるだけでフォームを設置できます。基本的な設置方法は【WordPress】お問い合わせフォームの設置方法(Contact Form 7)で解説しています。
Contact Form 7を日本語化するにはどうすればいいですか?
開発者が日本人のため、WordPress本体の表示言語が日本語であれば、Contact Form 7の管理画面も自動的に日本語で表示されます。フォーム内に表示される項目名やメッセージの文言は、フォーム編集画面で自由に書き換えられます。
「その他の設定」にon_sent_okと書いてもリダイレクトされないのはなぜ?
on_sent_ok と on_submit は、Contact Form 7 5.0で公式に完全削除されたためです。現行の6.1.6では記述しても動作しません。詳しくは古い「on_sent_ok」を使う方法はもう使えないで解説しています。JavaScript方式またはプラグイン方式に置き換えてください。
送信後にリダイレクトはされるのに確認メールが届きません
リダイレクトとメール送信は別々の処理です。ページ遷移が成功していても、メールの設定不備やスパム判定などが原因でメールが届かないことがあります。原因の切り分けと対処は【WordPress】フォームのメールが届かない場合の解決方法(Contact Form 7)で詳しく解説しています。
リダイレクトの設定が正しくても、サーバーが遅いと送信完了からサンクスページ表示までに待たされ、せっかくのUX改善が台無しになってしまいます。
ラッコサーバーは高速なLiteSpeedを採用し、HTTP/3にも対応。稼働率99.99%以上の安定稼働で、フォーム送信〜ページ遷移までストレスなく動く環境を用意できます。
月額330円(税込)〜、30日間の無料お試しも可能なので、フォームを設置するWordPressサイトの表示速度に悩んでいる方はぜひ一度お試しください。
まとめ
Contact Form 7には送信後のサンクスページ遷移を行う標準機能はありませんが、次の2つの方法で確実に実現できます。
- 方法1:wpcf7mailsentイベントを使うJavaScript方式(公式推奨・プラグイン不要)
- 方法2:プラグイン「Redirection for Contact Form 7」(コード不要・画面操作だけ)
古い記事にある on_sent_ok による方法は Contact Form 7 5.0 で削除済みで、現行バージョンでは動作しません。これから設定するなら上記2つのどちらかを選びましょう。コードに抵抗がなければJavaScript方式、画面操作だけで済ませたいならプラグイン方式が向いています。
導入する際は、開発者本人がサンクスページへのリダイレクトを積極的には推奨していない点も踏まえたうえで、「送信完了をはっきり伝えたい」「次のアクションへ誘導したい」といった自分の目的に照らして、本当に必要かを判断すると失敗しにくくなります。







