Contact Form 7 投稿一覧から選択

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

カスタム投稿タイプの一覧から選択して申し込むというメールフォーム、今までutf-8n で使えるCGIを利用していたが、reCAPTCHAをつけるためにContact Form 7 に変更することになり、投稿の読み込み部分をどうするか。

PHP + jQuery

投稿の読み込みはPHPファイルでフォームの上に表示し、jQuery でフォームのフィールドに入れる。
投稿ごとに選択要素がある場合は、jQueryもループにして、それぞれに対応するフィールドをフォーム内に作る。
Confirm Plus Contact Form 7 で確認画面をつけたい場合は向かない。

$(function(){
ここからループ
$('[name=セレクトフィールド名-カウントなどで識別]').change(function() {
//選択されているvalue値を取り出す
var xxxxx = $('[name=セレクトフィールド名-カウントなどで識別]').val();
//テキストボックスに取り出したvalue値を入れる
$("#テキストフィールド名-カウントなどで識別").val(xxxxx);
});
ここまでループ
});

wpcf7_add_form_tag

テーマ関数でフォームの中にフィールドを出力する。
Confirm Plus Contact Form 7 を使用したい場合は、項目として指定するtitle-contactform7 やフィールドをまとめるtext-set-contactform7 はフォームのエディターの方に入れる。

function add_post_list()
{
  ob_start();
~
ここに投稿を読み込んで選択のための部品
~
  return ob_get_clean();
}
wpcf7_add_form_tag('shortcode', 'add_post_list');