リンクごとに初期値を変える!Contact Form 7・メールフォームプロでのURLパラメータ活用術

コーディング

Webサイトを運営していると、「特定のリンクから来たユーザーには、フォームの入力欄にあらかじめ値を入れておきたい」という場面があります。
例えば、資料請求ページから来た人には「資料請求」と初期表示したい、キャンペーンページから来た人には「キャンペーン応募」と表示したい、といったケースです。

こうしたときに便利なのが URLパラメータを使った初期値の設定 です。
Contact Form 7(WordPress)やメールフォームプロ(CGIフォーム)では、URLパラメータを読み取ってフォームの入力欄に反映させることができます。

本記事でわかること
  • URLパラメータの基本的な書き方
  • Contact Form 7での設定方法
  • メールフォームプロでの設定方法
  • 注意点と応用例

URLパラメータとは?

URLパラメータとは、WebページのURLの末尾に「?(クエスチョンマーク)」や「&(アンパサンド)」を使って追加する情報のことです。
Webサイトにアクセスする際に、リンク元やユーザーの選択内容をページに渡すためによく使われます。

URLパラメータの例

https://example.com/form?type=campaign

上記の例では、?type=campaign がパラメータ部分になります。

  • typeパラメータ名
  • campaignパラメータの値

という関係です。

複数のパラメータを渡したい場合は & でつなげます。

https://example.com/form?type=campaign&name=test

この場合、

  • type=campaign
  • name=test

という2つの情報がURLに含まれています。

フォームでの利用イメージ

URLパラメータをフォームと組み合わせることで、リンクごとにフォームの初期値を変えることが可能です。
たとえば:

  • 資料請求ページ → ?subject=資料請求
  • お問い合わせページ → ?subject=お問い合わせ

と設定しておけば、同じフォームでもリンク元によって自動的に初期値が切り替わります。

Contact Form 7でURLパラメータを使って初期値を設定する方法

Contact Form 7(CF7)では、フォームタグに default:get を指定することで、URLパラメータを初期値として自動的に反映できます。

1. 基本の記述方法

例:問い合わせ種別をパラメータから受け取る場合

[select* your-subject default:get "資料請求" "お問い合わせ" "その他"]

default:get subject
→ URLの ?your-subject= (name値)に指定された値を初期値にします。

2.リンクURL例

https://example.com/contact?your-subject=資料請求

このURLからフォームを開くと、プルダウンの初期値が「資料請求」にセットされます。
テキストフィールドやボタンでも同様に反映されます。

複数フィールドの場合

https://example.com/contact?your-subject=資料請求&book=ガイドブック

複数のパラメータを渡したい場合は & でつなげます。

3.応用:隠しフィールドにパラメータを入れる

フォーム上には表示せず、送信内容だけに反映させたい場合は hidden フィールドを使います。

[hidden campaign-code default:get]

URL例:

https://example.com/contact?campaign-code=abc123

送信メールの本文には abc123 が反映されます。

4. 注意点

  • default:get を使うと、パラメータが存在しないときは空欄のままになります。
  • 半角スペースや日本語を含む場合は、自動的にエンコードされます(例:資料請求%E8%B3%87%E6%96%99%E8%AB%8B%E6%B1%82)。リンク作成時はエンコードも意識しましょう。
  • パラメータを多用するとURLが長くなるので、用途を整理して使うのがおすすめです。

メールフォームプロでURLパラメータを使う方法

実は メールフォームプロは標準で URL パラメータを初期値に反映できる仕組み が備わっているので、Contact Form 7 のようにフォーム側でコードを書く必要はありません。

1. URLにパラメータを付与する

まず、フォームを呼び出すリンクにパラメータを追加します。

例:

https://example.com/mailformpro/?campaign=summer2025

2. 自動的に入力欄に反映される

メールフォームプロの場合、フォーム側で特別な設定をしなくても、

  • name="campaign" のフィールドがあると
  • URL の ?campaign=summer2025 が自動的に初期値として反映されます。

3. 活用例

  • 広告経由の違いを自動で記録する
  • イベント名やセミナー名をあらかじめ入力済みにする
  • サイト内の複数ページから同じフォームに飛ばして、どのページからの申込みかを記録する

4. 注意点

  • パラメータ名は フォームの name 属性と一致させる必要 があります。
  • 日本語を使う場合は URL エンコードが必要です。
  • ユーザーに見せたくない場合は hidden フィールドを用意すると便利です。

よくあるトラブルと解決法

1. パラメータが反映されない

  • 原因:URLの書き方ミス(?&の位置が間違っている)
  • 解決法
    • 正しい書き方 → ?name=山田&email=test@example.com
    • パラメータ名がフォームのname属性と一致しているか確認

2. 日本語が文字化けする

  • 原因:日本語を直接URLに入れるとエンコードされる
  • 解決法URLエンコード(%E3%81%AA%E3%81%A9)を利用する
    • 例)?name=%E5%B1%B1%E7%94%B0

3. 他のスクリプトやリダイレクトで消えてしまう

  • 原因:リダイレクト処理でパラメータが引き継がれていない
  • 解決法
    • リダイレクト時に ?param=value を付けて引き継ぐ設定を行う
    • WordPressの場合、wp_redirectを使う際にadd_query_argで保持

セキュリティ面の注意点

URLパラメータは「ユーザーが自由に書き換えられる値」なので、注意が必要です。

  • 改ざんリスク
    • 悪意あるユーザーがパラメータを改ざんして不正な情報を送信する可能性あり
    • 例)価格やプラン情報をパラメータで渡すのはNG
  • 個人情報の取り扱い
    • email電話番号 などをURLに含めると、アクセスログや共有リンクに情報が残る
    • 個人情報は極力URLパラメータに含めないのが安全
  • 対策
    • サーバー側で入力値を検証(サニタイズ・バリデーション)する
    • パラメータは便利な反面、利用範囲を限定する

まとめ|URLパラメータを使えばフォーム入力がスムーズに

URLパラメータを利用すれば、リンク元からフォームに初期値を自動入力できるため、ユーザーの手間を減らし、入力ミスの防止にもつながります。
Contact Form 7では短いコードの追加が必要ですが、メールフォームプロの場合はリンクにパラメータを付けるだけで反映されるなど、それぞれ特徴があります。

一方で、パラメータが反映されない・日本語が文字化けする・リダイレクトで消えてしまうといったトラブルもあるため、仕組みを理解した上で正しく実装することが大切です。また、URLパラメータは改ざん可能でログにも残るため、個人情報や重要なデータを扱う用途には注意が必要です。

正しく活用すれば、ユーザーにとっても管理者にとっても便利な仕組みになりますので、ぜひ自分のフォームに合わせて取り入れてみてください。

この記事を書いた人
管理人

2012年にWebデザインの勉強を始め、2013年より制作会社に勤務。
これまでに500件以上のWebサイト制作・運用に携わってきました。
現在も制作会社に勤務しながら、Webデザインスクールのトレーナーとしても後進の育成に取り組んでいます。
WordPressやデザインの実践的なノウハウを、初心者にもわかりやすく発信できるよう試行錯誤しています。

管理人をフォローする
コーディング
スポンサーリンク
管理人をフォローする

コメント

タイトルとURLをコピーしました