Выбор CMB с данными из CPT

Я использую рамки CMB для создания обменных ситуаций ( https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress )

и я хочу добавить поле выбора, которое предварительно заполняет заголовки из пользовательского типа сообщения. Нормальный блок выбора выглядит так:

array( 'name' => 'Test Select', 'desc' => 'field description (optional)', 'id' => $prefix . 'test_select', 'type' => 'select', 'options' => array( array('name' => 'Option One', 'value' => 'standard'), array('name' => 'Option Two', 'value' => 'custom'), array('name' => 'Option Three', 'value' => 'none') ) ), 

Я хочу сделать что-то вроде:

 array( 'name' => 'Test Select', 'desc' => 'field description (optional)', 'id' => $prefix . 'test_select', 'type' => 'select', 'options' => array( query_posts( array( 'post_type' => 'myposttype' ) ) ), 

где параметры выбора заполняются из заголовков пользовательского типа сообщений .. но он работает не так, как я. Есть идеи?

Solutions Collecting From Web of "Выбор CMB с данными из CPT"

Используйте функцию, которая возвращает массив массивов, который ожидает поле options .

Что-то вроде этого (непроверенный код):

 array( 'name' => 'Test Select', 'desc' => 'field description (optional)', 'id' => $prefix . 'test_select', 'type' => 'select', 'options' => get_myposttype_options('myposttype'), ), function get_myposttype_options($argument) { $get_post_args = array( 'post_type' => $argument, ); $options = array(); foreach ( get_posts( $get_post_args ) as $post ) { $title = get_the_title( $post->ID ); $options[] = array( 'name' => $title, 'value' => $title, ); } return $options; } 
 query_posts( array( 'post_type' => 'myposttype' ); while ( have_posts() ) : the_post(); $title_list[] = array('name' => the_title(), 'value' => the_title()); endwhile; wp_reset_query(); array( 'name' => 'Test Select', 'desc' => 'field description (optional)', 'id' => $prefix . 'test_select', 'type' => 'select', 'options' => $title_list )