MW WP Formでカスタム投稿「shop」のカテゴリーを選択項目に追加する方法

MW WP Formを使って、カスタム投稿「shop」に関連するカテゴリーをフォーム内にラジオボタン形式で表示したい場合、事前に登録したカテゴリーを自動的に表示する方法が便利です。
本記事では、WordPressのカスタムコードを用いて、MW WP Form内でカスタム投稿「shop」
に紐づいたカテゴリーをラジオボタンで表示する方法を詳しく解説します。

MW WP Formの基本的な使い方

MW WP Formでは、[mwform_radio]タグを使ってラジオボタンを表示できます。
例えば、以下のようにして複数の店舗名を手動で指定することが可能です。

[mwform_radio name="shopselect" class="radio" children="サンプル店01,サンプル店02,サンプル店03,サンプル店04,サンプル店05,サンプル店06,サンプル店07" value="サンプル店01" show_error="false"]

このコードでは、ラジオボタンとして7つの店舗(サンプル店01、サンプル店02、サンプル店03、サンプル店04、サンプル店05、サンプル店06、サンプル店07)が表示され、
初期選択値として「サンプル店01」が設定されます。

カスタム投稿「shop」のカテゴリーを動的に表示する方法

上記の方法では、店舗名を手動で設定する必要がありますが、店舗カテゴリーが変更された場合や新しいカテゴリーが追加された場合に毎回手動で更新するのは面倒です。
そこで、カスタム投稿タイプ「shop」に登録されたカテゴリーを自動的に取得してフォームに表示する方法を紹介します。

ショートコードでカテゴリーを動的に取得

WordPressのショートコードを使って、「shop」カスタム投稿のカスタム分類(カテゴリー)を動的に取得するカスタム関数を作成します。
以下のコードをfunctions.phpファイルに追加してください。

function custom_shop_category_radio_box() {
$args = array(
'taxonomy' => 'shop_category', // カスタム分類名
'orderby' => 'name',
'hide_empty' => true, // 投稿が1件以上あるカテゴリーのみ表示
);

// カテゴリーの取得
$categories = get_terms($args);

// ラジオボタン形式のHTMLを生成
$output = '';
foreach ($categories as $category) {
$output .= '<label class="radio">';
$output .= '<input type="radio" name="shopselect" value="' . esc_attr($category->name) . '"> ' . esc_html($category->name);
$output .= '</label>';
}

return $output;
}
add_shortcode('shop_category_radio', 'custom_shop_category_radio_box');

このコードのポイントは以下の通りです。

taxonomy

カスタム分類のスラッグを指定します。
ここではshop_categoryに設定していますが、サイトで設定しているタクソノミー名に変更してください。

hide_empty

trueに設定することで、1件以上の投稿があるカテゴリーのみ表示されます。

MW WP Form内でショートコードを使用

上記で作成したショートコードをMW WP Form内で使うため、
フォームの表示したい場所に以下のように記述します。

[shop_category_radio]

これにより、shop_categoryに登録されたカテゴリーが自動的に表示され、
投稿が1件以上あるカテゴリーのみがラジオボタン形式で表示されます。

注意点

カスタム分類スラッグの確認

カスタム分類のスラッグ名が間違っていると、正しくカテゴリーを取得できません。
register_taxonomyで指定したスラッグを再確認してください。

動的なカテゴリー取得のデバッグ

カテゴリーが表示されない場合、get_termsで取得した内容をprint_r($categories);で確認するなど、
デバッグを行ってください。

    まとめ

    MW WP Formでカスタム投稿「shop」のカテゴリーを選択項目として表示することで、
    フォームをより柔軟にカスタマイズできます。ショートコードを利用して動的にカテゴリーを表示することで、サイトの更新や管理がしやすくなり、店舗カテゴリーなどの追加・変更にも簡単に対応可能です。

    この方法で、必要に応じて選択項目の内容を柔軟に設定し、
    ユーザーフレンドリーなフォームを作成してみてください。