【MW WP Form】フォームのセレクトボックスに特定カテゴリーの記事タイトルを自動で表示

2021-10-25

例えば、フォームのセレクトボックスから「参加したいセミナー」「問い合わせたい商品」などを選択できるようになっている場合、投稿ページと連動していれば、投稿ページの追加・削除だけで、フォームを修正する必要がなくなります。

新しい記事をアップしたら自動でフォームのセレクトボックスに記事タイトルを追加させたい…。そこで、プラグイン「MW WP Form」で特定カテゴリーの記事タイトルをフォームセレクトボックスの選択肢にする方法をまとめました。

このページの手順でできること

  • ・「MW WP Form」で作成したフォームに設定できます。
  • ・新しい記事をアップしたら自動でフォームのセレクトボックス選択肢に記事タイトルを追加。

フォームセレクトボックスの選択肢と記事を連動させる方法

ステップ① MW WP Formでフォームを作成

まずはフォームを作ります。
12行目のセレクトボックスの選択肢に「qualification」というスラッグのカテゴリーの投稿記事タイトルが出力される予定です。

<table>
<tr>
<th>お名前</th>
<td>[mwform_text name="your-name" class=""]</td>
</tr>
<tr>
<th>メールアドレス</th>
<td>[mwform_email name="email" placeholder="半角英数字で入力してください"]</td>
</tr>
<tr>
<th>ご希望の講座</th>
<td>[mwform_select name="course" children=":選択してください" post_raw="true"]</td>
</tr>
</table>
<div class="contact_btn">
[mwform_submitButton name="submit" confirm_value="確認する" submit_value="送信する"][mwform_bback class="modoru" value="back"]戻る[/mwform_bback]
</div>

 

ステップ② MW WP Formフィルターフック導入

MW WP Formのセレクトボックスだけではなく、ラジオボタン、チェックボックスの選択肢をカテゴリーと連動させることのできるフックについて解説してくださっているMW WP Formマニュアルのページがあります。こちらを参考に実装させていただきます。

function.phpに下記コードを入れます。

//MW WP Formセレクトボックスに特定カテゴリーの記事タイトルを表示
function add_select_item_course( $children, $atts ) {
if ( $atts['name'] == 'course' ) {
$arg = array(
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
'category_name' => 'qualification'
);
$cat_posts = get_posts( $arg );

foreach( $cat_posts as $cat_post ){
$children[$cat_post->post_title] = $cat_post->post_title;
}
}
return $children;
}
add_filter( 'mwform_choices_mw-wp-form-★★★', 'add_select_item_course', 10, 2 );

3行目「course」はセレクトボックスにつけたnameです。
8行目は連動させたいカテゴリーのスラッグ「qualification」になります。
18行目の★★★にはフォーム識別子の数字が入ります。

お名前
メールアドレス
ご希望の講座

こちらはサンプルです。リンクはつけていません。
セレクトボックスに特定のカテゴリーの記事タイトルが自動で出力されました!

おわりに

セレクトボックスの選択肢と投稿ページの連動で効率化することができました。お客さまもいちいち修正を指示する手間・時間が省けて満足してくださっています。