カスタム投稿タイプをラジオボタンとして追加する方法です。
カスタム投稿タイプを選択肢として追加(フロントページなし)
function.phpに以下を追記します。選択項目用のデータしてのみ使用しますので、フロントページの表示は無いように設定します。
function add_custom_post_type()
{
register_post_type(
'choices',
array(
'label' => '選択項目',
'menu_position' => 5, // メニューの位置投稿の下
'public' => false, // ユーザーインターフェースを非表示
'show_ui' => true, // 管理画面にカスタム投稿タイプを表示
'show_in_menu' => true, // 管理画面のメニューに表示
)
);
}
add_action('init', 'add_custom_post_type');
// 詳細ページを無効化
add_filter('choices_rewrite_rules', '__return_empty_array');
選択項目別に紐づけデータの登録
今回は選択別にメールの送信先を振り分けするために、項目別にメールアドレスを登録するようにしました。
カスタム投稿タイプの本文を非表示にする方法はこちら
MW WP Formの選択項目としてカスタム投稿タイプを追加
カスタム投稿タイプをMW WP Formの選択項目として追加するために、function.phpに以下を追記します。
function add_choices_list( $children, $atts ) {
if ( 'choices' == $atts['name'] ) {
$choices_posts = get_posts( array(
'post_type' => 'choices',
'posts_per_page' => -1,
) );
foreach ( $choices_posts as $choice ) {
$children[$choice->ID] = $choice->post_title;
}
}
return $children;
}
add_filter( 'mwform_choices_mw-wp-form-X', 'add_choices_list', 10, 2 );
※mw-wp-form-Xの箇所をフォームのIDを指定します。
MW WP Formのテンプレートにラジオボタンとして追加
フォームのテンプレートに以下を追記します。
[mwform_radio name="choices"]
以上でカスタム投稿タイプがラジオボタンとしてフォームに追加されます。実際のフォームの表示はこちら
コメント