如何从多选中使用Key in Carbon Fields获得值?

时间:2018-06-06 作者:trolik

我有Multiselect字段,使用最新的Carbon Fields(2.2.0)库创建:

Field::make( "multiselect", "available_on", "Available on" )
    ->add_options( array(
        \'windows\' => \'Windows\',
        \'mac\' => \'Mac OS/ OSX\',
        \'linux\' => \'Linux\',
        \'android\' => \'Android\',
        \'mobile\' => \'Mobile\',
        \'tv\' => \'Smart TV\',
        \'desktop\' => \'Desktop\',
        \'router\' => \'Router\',
        \'raspberrypi\' => \'Raspberry Pi\',
    ) ),
但当我使用carbon_get_post_meta() 并使用foreach()var_dump(), 我只获得所选值的键(例如“mac”)。DB中不存在该值,只有键。

那么,如何获取这些值(例如“Mac OS/OSX”)?

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

这里的碳田开发商之一。

感谢您的反馈!

目前,Carbon字段仅存储键,并且没有内置方法从选项数组中检索选定值。

您可以将一个callable传递给add_options 方法

function available_options() {
    return array(
        \'windows\' => \'Windows\',
        \'mac\' => \'Mac OS/ OSX\',
        \'linux\' => \'Linux\',
        \'android\' => \'Android\',
        \'mobile\' => \'Mobile\',
        \'tv\' => \'Smart TV\',
        \'desktop\' => \'Desktop\',
        \'router\' => \'Router\',
        \'raspberrypi\' => \'Raspberry Pi\',
    );
}


Field::make( \'multiselect\', \'available_on\', \'Available on\' )
    ->add_options( \'available_options\' ),
然后,如果要从存储的键中检索正确的值,请使用该功能:

$all_options = available_options();
$available_on = carbon_get_post_meta( $post_id, \'available_on\' );

foreach ( $available_on as $option_key ) {
    echo $all_options[ $option_key ];
}

结束

相关推荐

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

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