显示选择选项的标签文本,而不是以cmb2为单位显示其值

时间:2020-08-27 作者:bigant841

我试图显示我的CMB2的标签文本,而不是在前端选择值。当前,我的选择字段显示一个名为fleet的特定自定义帖子类型的列表。当我添加$gas=get\\u post\\u meta时(get\\u the\\u ID(),“gas\\uu assign”,true);echo$天然气;在我的网站前面,它显示的是一个值,在这种情况下,这个值就是帖子ID。我是否可以显示所选选项而不是值?

自定义选择

 $gas->add_field( array(
        \'name\'          => \'Assign\',
        \'desc\'          => \'assign a vehicle\',
        \'id\'            => $prefix . \'gas__assign\',
        \'type\'          => \'select\',
        \'options\'       => get_gas_options(\'fleettype\'),
    ));
选择CPT的字段选择

function get_gas_options($a) {
$args = array(
    \'post_type\'         => \'fleet\',
    \'orderby\'           => \'ID\',
    \'post_status\'       => \'publish\',
    \'order\'             => \'ASC\',
    \'posts_per_page\'    => -1 // this will retrive all the post that is published 
);
$result = new WP_Query( $args );
$title_list[\'\'] = "Assign a Vehicle";

if ( $result-> have_posts() ) :
while ( $result->have_posts() ) : $result->the_post();
    $title_list[get_the_ID()] = get_the_title();   
endwhile;
endif; 
wp_reset_postdata();
    
return $title_list;
}

               
         

1 个回复
最合适的回答,由SO网友:Antti Koskinen 整理而成

我正在使用$gas 下面我的回答中的问题的示例变量。抱歉,格式错误,我正在移动设备上键入此内容

如果你确定$gas 将始终包含帖子ID,那么最简单的解决方案就是echo ! empty($gas) ? get_the_title( $gas ) : \'\'; (此处使用三元运算符)

另一种方法是将模板中的选项设置为变量,并使用$gas 作为键来获取相应的数组值(本例中为label)。

$options = get_gas_options(\'fleettype\'); echo $options[ $gas ] ?? \'\'; (此处使用空合并运算符)。