HM CMB:CPT ID的POST选择字段

时间:2013-09-18 作者:Rizzo

\'我使用人造的自定义元框框架(https://github.com/humanmade/Custom-Meta-Boxes). 使用post选择:

array( 
    \'id\'       => \'example-field-post-select\', 
    \'name\'     => \'Post Select Field\', 
    \'type\'     => \'post_select\', 
    \'use_ajax\' => true,
    \'query\' => array( \'post_type\' => array(\'posttype\') )
);
当前,post\\u select字段的工作方式是在字段名称和值的选择框中填充post ID。我想填充选择框的“名称”部分作为帖子类型标题,“值”作为id。

您知道如何在不修改字段类型或创建自定义选择字段的情况下完成此操作吗?

2 个回复
SO网友:Matth_eu

不幸的是,不可能修改字段以使用名称而不是ID,也不可能保留AJAX功能。

您可以使用一个标准的选择字段,并将post数据以所需的格式传递给该字段,尽管您将失去AJAX功能。

要百分之百实现您的目标,唯一的方法是创建自定义CMB字段类型。

不幸的是,Post\\u Select\\u字段和Select\\u字段类不是最容易使用的,尤其是AJAX类。我目前正在对此进行一次大修,一旦发布,应该会更加清晰。可能至少要几周。

Update to include some code

这是使用标准选择字段的方式:

add_filter( \'cmb_meta_boxes\', \'cmb_sample_metaboxes\' );
function cmb_sample_metaboxes( array $meta_boxes ) {

    $post_select_options = array();

    $my_query = new WP_Query( \'post_type=post&posts_per_page=100\' );

    while ( $my_query->have_posts() ) {
        $my_query->the_post();
        global $post;
        $post_select_options[$post->post_name] = get_the_title( get_the_id() );
    }

    wp_reset_postdata();

    $meta_boxes[] = array(
        \'title\' => \'CMB Test - all fields\',
        \'pages\' => \'post\',
        \'fields\' => array(
            array( \'id\' => \'field-ID\', \'name\' => \'Post Select field\', \'type\' => \'select\', \'options\' => $post_select_options, \'allow_none\' => true ),        
        )
    );

    return $meta_boxes;

}

SO网友:Rizzo

因此,通过Jupiter Cow对Update Post插件的修改,这一点变得更加可能,如下所示:

https://bitbucket.org/jupitercow/gravity-forms-update-post/src

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在