文脈からデフォルト値を取得する

入力項目のデフォルト値は通常フォームタグの値の部分から得られますが、これをフォームが置かれている文脈から取得することが可能です。

それには、フォームタグに default:{source} オプションを追加して、デフォルト値を取得したいデータソースを指定します。利用可能なデータソースは、get (HTTP GET 変数)、post (HTTP POST 変数)、そして post_meta (カスタムフィールド) です。また、ログインユーザーの情報も利用可能です。

例として、”your-name” を名前に持つ項目があるとします:

[text* your-name]

ここで HTTP GET 変数からデフォルト値を得るには、default:get オプションをフォームタグに追加します:

[text* your-name default:get]

これで、この項目はデフォルト値を、同じ名前 (“your-name”) を持った GET 変数から取得するようになります。フォームがあるページの URL にクエリー文字列を加えてアクセスしてみましょう:

http://example.com/contact/?your-name=John+Smith

問題なく動いていれば、当該項目に「John Smith」と入力されているはずです。

同様のロジックで、フォームタグに default:post_meta オプションが指定されていて、フォームを含んだページに “your-name” という名前のカスタムフィールドが設定されている場合に、そのカスタムフィールド値がデフォルト値になります。

では、単一のフォームタグに2個以上 default オプションが指定された場合はどうなるでしょう。次のフォームタグの場合を考えてみましょう:

[text* your-name default:get default:post_meta "Your Name"]

このフォームタグは2個の default オプションと値 “Your Name” を持っています。オプションは前から順に評価されます。この例では、default:get が最初に評価されます。もし GET 変数 “your-name” に値があればそれがデフォルト値に使われます。その値が空の場合は、次に default:post_meta が評価されます。どちらのオプションにも値がない場合は、”Your Name” が使われることになります。

Just another contact form plugin for WordPress. Simple but flexible.