WP
カスタム投稿のターム名をMWフォームに引き継ぐ
まずここにチェックを入れて、
遷移元のテンプレートのリンク先指定には
<a href="<?php echo home_url('entry/?post_id='.get_the_ID()) ?>">登録はこちら</a>
のように記載することで投稿タイトルやID、スラッグなどの基本的な値は引っ張ってくれる。
投稿タイトルを表示するだけならMWフォーム編集画面内で{post_title}で表示させることができるが、
ターム名やカスタムフィールドの値は上記の「基本的な値」に含まれない。
なので、追加でfunction.php側でタームを取得・表示するためのMW向けのフィルターを定義。
<!-- ※フォームのkeyが777の場合 -->
function my_mwform_post_content_777( $content, $Data ) {
$term_name='';
$query_string = empty( $args['querystring'] ) ? "post_id" : $args['querystring'];
$post_id = filter_input(INPUT_GET, $query_string, FILTER_VALIDATE_INT);
$post = $post_id > 0 ? get_post($post_id) : null;
if($post){
$term_names=array();
if ($terms = get_the_terms($post->ID, 'タクソノミースラッグ')) {
foreach ( $terms as $term ) {$term_names[] = $term->name;
}
}
$term_name =implode('、',$term_names);
}
$search='{aaa}';
$content = str_replace($search, $term_name, $content);
return $content;
}
add_filter( 'mwform_post_content_mw-wp-form-777', 'my_mwform_post_content_777', 10, 2 );
で、フォーム編集画面で
{aaa}と入力すれば任意の箇所にタームの値を表示させることができ、
[mwform_hidden name=”任意名” size=”30″ value=”{aaa}“]
と併せて入れておけば、name属性を自動返信メールに含めることができ、確認画面などにも引き継げるようになる。