我试图显示我的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;
}
最合适的回答,由SO网友:Antti Koskinen 整理而成
我正在使用$gas
下面我的回答中的问题的示例变量。抱歉,格式错误,我正在移动设备上键入此内容
如果你确定$gas
将始终包含帖子ID,那么最简单的解决方案就是echo ! empty($gas) ? get_the_title( $gas ) : \'\';
(此处使用三元运算符)
另一种方法是将模板中的选项设置为变量,并使用$gas
作为键来获取相应的数组值(本例中为label)。
$options = get_gas_options(\'fleettype\'); echo $options[ $gas ] ?? \'\';
(此处使用空合并运算符)。