MW WP Formでカスタム投稿タイプをラジオボタンとして追加

wordpressコメントフィルタ Wordpress
wordpressコメント

カスタム投稿タイプをラジオボタンとして追加する方法です。

カスタム投稿タイプを選択肢として追加(フロントページなし)

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"]

以上でカスタム投稿タイプがラジオボタンとしてフォームに追加されます。実際のフォームの表示はこちら

コメント

タイトルとURLをコピーしました