Contact Form 7でパラメータをフィールド初期値に入れ込む

あけましておめでとうございます!
年末年始、テレビばっかり見ていたので、初出社後どうも感覚が戻ってません。いつか箱根駅伝の大手町ゴールを見に行きたい…

株式会社まちいろのフロントエンドエンジニア(仮)の日高です。
またしてもWordpressのContact Form 7 ネタです。
今回は、パラメータとして渡ってきた値をフィールド(テキストフィールド)の初期値に入れ込むお話です。

ちなみに前回はこちら。日付フィールドのお話を書きました。

どういうこと?

例えば、/contact?name=hidaka というURLでパタメータが渡ってきたとします。

パラメータの値(hidaka)をテキストフィールドに入れ込みます。

HTMLやPHPではパラメータをgetしてその値を該当のフォームに差し込みます。
自作のフォームでなく、Contact Form 7 を使ったフォームの場合どうやって取得したパラメータを入れたら良いのでしょうか??

Contact Form 7 のフォームタグに一工夫

難しいコードを書く必要はありません。フォームを作る際のフォームタグに一工夫するだけです。

まずは名前を入れるフィールドを準備します。この時、フィールド名はパラメータ名と同じものにします。

作成したフォームタグに default:get という設定を追加します。
さらに、書き込み不可フィールドとする場合はreadonly設定も追加します。

[text name default:get readonly]

こうすることで、nameというパラメータの値がフィールド(name)に初期値として設定されます。

危うく自作するところだった…

JavaScriptを使ってフィールドに無理やり値を差し込むパターンも考えたのですが、諸々調べてこの方法にたどり着きました。
たった1行で解決できるのは素晴らしい!
Contact Form 7 さんありがとうございます!!

この記事が気に入ったらサポートをしてみませんか?