MW WP Formセレクトボックスに特定カテゴリーの記事タイトルを自動で表示させたい!

ワードプレス

フォームセレクトボックスの選択肢をカテゴリーと連動

フォームの質問事項が頻繁に変わるとき、例えば商品が変わる度、注文フォームをいちいち修正するのは慣れていないと大変です。
新しい記事をアップしたら自動でフォームのセレクトボックスに記事タイトルを追加させたい…。そこで、MW WP Formで特定カテゴリーの記事タイトルをフォームセレクトボックスの選択肢にできないか、調べてみました!

MW WP Form フィルターフック

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>

 

function.phpに追加

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行目の★★★にはフォーム識別子の数字が入ります。

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

セレクトボックスに特定のカテゴリーの記事タイトルが自動で出力されました!ありがとうございます!!

-ワードプレス

関連記事

WordPressテーマ「lightning」カスタム投稿

「lightning」のカスタム投稿 WordPress無料テーマで人気の「lightning」。 サポートの終了しているテーマ「BizVektor」から後継の「lightning」に移行したという方 …

カスタム投稿プラグイン「Custom Post Type UI」のお引っ越し

カスタム投稿の移行 「Custom Post Type UI」は、簡単にカスタム分類を設定して独自の投稿タイプを作れるプラグインです。function.phpに記述せずにカスタム投稿を作成できるのは初 …

カテゴリーなどの一覧ページに並び順を変更できるボタンをつけたい

投稿記事一覧をソートするボタンを作りたい! よくネットショップで見かける、値段の安い順、高い順、人気順など見たい順番を選べるボタン。 WordPressのカテゴリー一覧ページなどに設置できれば、ユーザ …

特定のページだけに表示させたい! よく使う条件分岐

phpで使える便利な条件分岐 「トップページだけに表示させたい」「一覧ページだけ変更したい」 そんな時便利なのが条件分岐です。 トップページとその他 <?php if ( is_home() | …

よく使うWordPressテンプレートタグ

URLを出力するWordPressのテンプレートタグ phpファイルにテンプレートタグを使用することで、自動でURLを取得して表示してくれます。ドメインが変わってもコードの修正なし! ホームページのU …