
Contact Form 7(CF7)のフォームでメールアドレス確認(再入力)フィールドを使うと、送信前に入力ミスを防げます。
この記事では以下3点を解説します。
- 確認フィールドの仕組みと追加手順
- バリデーション(一致チェック)のコード追加方法
- エラーメッセージの日本語化
WordPress 7.0 + Contact Form 7 v6.1.6 で動作確認済み(2026年6月時点)
CF7のメールアドレス確認フィールドとは
メールアドレスの打ち間違いを防ぐ仕組み
お問い合わせフォームでメールアドレスを1か所だけ入力する形式だと、打ち間違いに気づかないまま送信してしまうことがあります。受信した側は正しいアドレスに返信できず、問い合わせが無駄になるケースです。
確認フィールドを追加すると、送信者は同じメールアドレスを2回入力します。CF7が送信時に2つのフィールドの値を照合し、一致しなければエラーメッセージを表示して送信を止めます。

_confirmの命名規則
CF7では、フィールド名の末尾に _confirm を付けたフィールドを確認用フィールドとして扱います。バリデーションコードが _confirm サフィックスを検出して元のフィールドと比較します。
命名ルール: 元のフィールド名 + _confirm
例として、元のフィールドが your-email なら、確認用フィールドは your-email_confirm にします。
フォームに確認フィールドを追加する

1. フォームの編集画面を開く
WordPress管理画面の左メニューから「お問い合わせ」→「コンタクトフォーム」の順にクリックします。
コンタクトフォームの一覧が表示されたら、確認フィールドを追加したいフォームの名前をクリックします。

2. 確認フィールドのタグを追加する
フォームの編集画面が開いたら、「フォーム」タブが選択されていることを確認してください。
フォームエディタには、すでにメールアドレスフィールドのタグ(例:[email* your-email])が入っているはずです。このタグの直後に、確認用フィールドのタグを追加します。
確認用フィールドのタグ形式は次のとおりです。
[email* フィールド名_confirm]
追加例:
[email* your-email]
[email* your-email_confirm]

プレースホルダー(入力前に表示するヒント)を設定したい場合は、placeholder 属性を追加します。
[email* your-email placeholder "例: contact@example.com"]
[email* your-email_confirm placeholder "もう一度入力してください"]

your-email の部分は、実際にフォームで使っているフィールド名に合わせてください。デフォルトのContact Form 7テンプレートでは your-email が使われています。3. 保存してフロントエンドの表示を確認する
タグを追加したら、画面下の「保存」ボタンをクリックします。

保存後、実際のお問い合わせページを確認します。フォームにメールアドレスの入力欄が2つ表示されていれば、タグの追加は完了です。

フォームタグを追加しただけでは、2つのメールアドレスが一致しなくても送信できてしまいます。次の「バリデーション(一致チェック)を追加する」ステップで、PHPコードを追加して照合処理を有効にしてください。
バリデーション(一致チェック)を追加する
CF7のフィルターフック wpcf7_validate_email* を使って、2つのフィールドの値を照合するバリデーションを追加します。
functions.phpに追加する方法
テーマの functions.php に以下のコードを追加します。
add_filter( 'wpcf7_validate_email', 'cf7_email_confirm_validation', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'cf7_email_confirm_validation', 11, 2 );
function cf7_email_confirm_validation( $result, $tag ) {
$name = $tag->name;
if ( preg_match( '/^(.+)_confirm$/', $name, $matches ) ) {
$original_name = $matches[1];
$original_value = isset( $_POST[ $original_name ] ) ? trim( $_POST[ $original_name ] ) : '';
$confirm_value = isset( $_POST[ $name ] ) ? trim( $_POST[ $name ] ) : '';
if ( $original_value !== $confirm_value ) {
$result->invalidate( $tag, 'メールアドレスが一致しません。もう一度ご確認ください。' );
}
}
return $result;
}
functions.php は直接編集するとテーマ更新時に上書きされる可能性があります。必ず子テーマの functions.php に追加するか、次に紹介するCode Snippetsプラグインを使用してください。
コードを保存したあと、フォームで意図的に異なるメールアドレスを入力して送信を試み、エラーメッセージが表示されるか確認してください。
Code Snippetsプラグインを使う方法
functions.php の直接編集が不安な場合は、Code Snippets(WordPress.org公式)プラグインを使う方法があります。WordPress管理画面からPHPコードを安全に追加でき、テーマ更新の影響を受けません。
- Code Snippetsをインストールして有効化する
- 管理画面の「スニペット」→「新規追加」を開く
- 上記のPHPコードをエディタに貼り付ける
- スニペットを有効化して保存する
エラーメッセージを日本語にする
上記のコードでは、すでに日本語のエラーメッセージ「メールアドレスが一致しません。もう一度ご確認ください。」を設定しています。
メッセージを変更したい場合は、コード内の次の部分を書き換えます。
$result->invalidate( $tag, 'メールアドレスが一致しません。もう一度ご確認ください。' );
シングルクォートで囲まれた文字列を変更するだけです。
エラーメッセージは確認フィールドの下に表示されます。CSSで見た目を調整したい場合は、CF7がエラー時に付与する wpcf7-not-valid クラスを使ってスタイルを指定できます。
Contact Form 7でメールアドレスの確認フィールドを設定しても、サーバー側のSPF・DKIM設定が不十分だと受信メールが迷惑フォルダに振り分けられることがあります。
ラッコサーバーはSPF・DKIM設定に標準対応。独自ドメインのメールアドレスも簡単に作成でき、お問い合わせメールの到達率向上につながります。
月額330円(税込)〜、30日間の無料お試しあり。
よくある質問
Q. コピー&ペーストを禁止することはできますか?
はい、できます。確認フィールドに入力する際のコピペを禁止するJavaScriptを追加する方法があります。ただし、コピペを禁止するとパスワードマネージャーが使えなくなるなどユーザーの利便性を損なうため、必要な場面のみ実装することをおすすめします。
Q. 確認フィールドにプレースホルダーを設定できますか?
はい、フォームタグに placeholder 属性を追加するだけです。
[email* your-email_confirm placeholder "もう一度入力してください"]
Q. 入力内容の確認画面(送信前確認)を設定したい場合は?
確認画面(送信前に入力内容を一覧表示する画面)は、今回解説した確認フィールドとは別の機能です。送信前の確認画面を設けたい場合は、Contact Form 7 Multi-Step Formsなどの追加プラグインを使う方法があります。
Q. 確認フィールドの設定はどこでできますか?
WordPress管理画面の「お問い合わせ」→「コンタクトフォーム」からフォームを選び、「フォーム」タブのエディタに直接タグを追加します。専用の設定画面はなく、フォームエディタへの直接入力のみで設定できます。
Q. 確認フィールドに入力したメールアドレスは、受信メールに表示されますか?
確認用フィールド(your-email_confirm)の値はバリデーションにのみ使用され、通常は受信メールの本文には含みません。メール本文テンプレートに [your-email_confirm] タグを追記しない限り、受信メールには元のフィールド([your-email])の値だけが表示されます。
Q. Contact Form 7の最新バージョンは何ですか?
2026年6月時点の最新バージョンはv6.1.6です。Contact Form 7(WordPress.org公式)のページで最新バージョンを確認できます。
Q. Contact Form 7は無料で使えますか?
はい、完全無料です。Contact Form 7(WordPress.org公式)からインストールでき、有料プランや機能制限はありません。1,000万以上のWordPressサイトで使われています(WordPress.org公式ページより)。
まとめ
Contact Form 7にメールアドレス確認(再入力)フィールドを追加する手順をまとめます。
- フォームエディタに
[email* your-email_confirm]タグを追加する functions.php(または Code Snippets)にバリデーションコードを追加する- フォームで動作確認(異なるアドレスを入力→エラー表示を確認)する
wpcf7_validate_email* フィルターを使ったバリデーションコードは、_confirm サフィックスを持つフィールドを自動検出します。フォームの中にメールアドレス確認フィールドを複数設けた場合も、同じコード1つで対応できます。
CF7の基本的なフォーム設置から始めたい場合は、こちらの記事を参考にしてください。







