ラッコサーバー

ラッコサーバーでサイトを管理すると売却時の価値を高く保てます!
サイト/ドメインの売却をシームレスに実現します。

ラッコサーバー詳細
オンライン事業売買
WordPressサイト売買
ドメイン売買
データを読み込み中...
データを読み込み中...
データを読み込み中...

【WordPress】メールアドレス確認(再入力)フィールドを追加する方法(Contact Form 7)

Contact Form 7でメールアドレスの確認(再入力)フィールドって、どうやって追加するんだろう…

Contact Form 7(CF7)のフォームでメールアドレス確認(再入力)フィールドを使うと、送信前に入力ミスを防げます。

この記事では以下3点を解説します。

  • 確認フィールドの仕組みと追加手順
  • バリデーション(一致チェック)のコード追加方法
  • エラーメッセージの日本語化

WordPress 7.0 + Contact Form 7 v6.1.6 で動作確認済み(2026年6月時点)

ラッコサーバー

ラッコサーバーでサイトを管理すると売却時の価値を高く保てます!
サイト/ドメインの売却をシームレスに実現します。

ラッコサーバー詳細
オンライン事業売買
WordPressサイト売買
ドメイン売買
データを読み込み中...
データを読み込み中...
データを読み込み中...

CF7のメールアドレス確認フィールドとは

メールアドレスの打ち間違いを防ぐ仕組み

お問い合わせフォームでメールアドレスを1か所だけ入力する形式だと、打ち間違いに気づかないまま送信してしまうことがあります。受信した側は正しいアドレスに返信できず、問い合わせが無駄になるケースです。

確認フィールドを追加すると、送信者は同じメールアドレスを2回入力します。CF7が送信時に2つのフィールドの値を照合し、一致しなければエラーメッセージを表示して送信を止めます。

CF7自体にはメールアドレス確認フィールドの組み込み機能はありません。フォームタグの追加とPHPコードの追加の2ステップで実装します。

_confirmの命名規則

CF7では、フィールド名の末尾に _confirm を付けたフィールドを確認用フィールドとして扱います。バリデーションコードが _confirm サフィックスを検出して元のフィールドと比較します。

命名ルール: 元のフィールド名 + _confirm

例として、元のフィールドが your-email なら、確認用フィールドは your-email_confirm にします。

フォームに確認フィールドを追加する

管理画面の操作だけで確認フィールドを追加できるよ!

1. フォームの編集画面を開く

WordPress管理画面の左メニューから「お問い合わせ」→「コンタクトフォーム」の順にクリックします。

コンタクトフォームの一覧が表示されたら、確認フィールドを追加したいフォームの名前をクリックします。

WordPress管理画面—CF7コンタクトフォーム一覧
▲ フォームの名前をクリックして編集画面へ

2. 確認フィールドのタグを追加する

フォームの編集画面が開いたら、「フォーム」タブが選択されていることを確認してください。

フォームエディタには、すでにメールアドレスフィールドのタグ(例:[email* your-email])が入っているはずです。このタグの直後に、確認用フィールドのタグを追加します。

確認用フィールドのタグ形式は次のとおりです。

[email* フィールド名_confirm]

追加例:

[email* your-email]
[email* your-email_confirm]
CF7フォームエディタ—メールアドレス確認フィールドのタグ
▲ 確認フィールドのタグ(赤枠部分)を追加した状態

プレースホルダー(入力前に表示するヒント)を設定したい場合は、placeholder 属性を追加します。

[email* your-email placeholder "例: contact@example.com"]
[email* your-email_confirm placeholder "もう一度入力してください"]

your-email の部分は、実際にフォームで使っているフィールド名に合わせてください。デフォルトのContact Form 7テンプレートでは your-email が使われています。

3. 保存してフロントエンドの表示を確認する

タグを追加したら、画面下の「保存」ボタンをクリックします。

CF7フォーム編集画面—保存ボタン
▲ 保存ボタンをクリックして変更を反映する

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

CF7フォームのフロントエンド表示—メールアドレス確認フィールドが追加された状態
▲ フロントエンドで確認フィールドが表示されている状態
この段階ではまだバリデーションが機能しません

フォームタグを追加しただけでは、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コードを安全に追加でき、テーマ更新の影響を受けません。

  1. Code Snippetsをインストールして有効化する
  2. 管理画面の「スニペット」→「新規追加」を開く
  3. 上記のPHPコードをエディタに貼り付ける
  4. スニペットを有効化して保存する

エラーメッセージを日本語にする

上記のコードでは、すでに日本語のエラーメッセージ「メールアドレスが一致しません。もう一度ご確認ください。」を設定しています。

メッセージを変更したい場合は、コード内の次の部分を書き換えます。

$result->invalidate( $tag, 'メールアドレスが一致しません。もう一度ご確認ください。' );

シングルクォートで囲まれた文字列を変更するだけです。

MEMO

エラーメッセージは確認フィールドの下に表示されます。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にメールアドレス確認(再入力)フィールドを追加する手順をまとめます。

  1. フォームエディタに [email* your-email_confirm] タグを追加する
  2. functions.php(または Code Snippets)にバリデーションコードを追加する
  3. フォームで動作確認(異なるアドレスを入力→エラー表示を確認)する

wpcf7_validate_email* フィルターを使ったバリデーションコードは、_confirm サフィックスを持つフィールドを自動検出します。フォームの中にメールアドレス確認フィールドを複数設けた場合も、同じコード1つで対応できます。

CF7の基本的なフォーム設置から始めたい場合は、こちらの記事を参考にしてください。