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」のカテゴリーを選択項目として表示することで、
フォームをより柔軟にカスタマイズできます。ショートコードを利用して動的にカテゴリーを表示することで、サイトの更新や管理がしやすくなり、店舗カテゴリーなどの追加・変更にも簡単に対応可能です。
この方法で、必要に応じて選択項目の内容を柔軟に設定し、
ユーザーフレンドリーなフォームを作成してみてください。
カスタム投稿タイプの条件分岐について
11月 13, 2024WordPressで特定ページ、すべてのカテゴリー、投稿詳細ページからカノニカルタグを削除する方法
11月 4, 2024カテゴリ別・投稿別にディスクリプションを動的に設定するWordPress関数
11月 1, 2024