在查询中获取 ACF post 元值
Get ACF post meta value in query
我想将 ACF 自定义字段的值添加到插件中以缩小查询范围。
这里是我为了检索值而创建的函数:
function vayvo_elements_post_difficulty(){
$post_meta = the_field( array(
'meta_key'=> 'difficulty',
'hide_empty' => false,
));
if ( ! empty( $post_meta ) && ! is_wp_error( $post_meta ) ){
foreach ( $post_meta as $meta_value ) {
$options[ $meta_value->string ] = $post->meta_value;
}
return $options;
}
这里是显示它的代码:
enter $this->add_control(
'progression_post_difficulty',
[
'label' => esc_html__( 'Narrow by difficulty', 'progression-elements-vayvo' ),
'description' => esc_html__( 'Choose a difficulty to display posts', 'progression-elements-vayvo' ),
'label_block' => true,
'multiple' => true,
'type' => Controls_Manager::SELECT2,
'options' => vayvo_elements_post_difficulty(),
]
);
不幸的是,我可以在查询中看到新的参数,但完全是空的,即使我有关于此 meta_key 的帖子也是如此。
有人有想法吗?
此致,
克莱门特
我不太确定我是否遵循。但是根据我的理解,您错误地使用了 the_field
函数,请参阅 documentation here.
您应该能够简单地从 get_field
获取字段值并禁用值格式化。
$this->add_control( 'progression_post_difficulty', [
'label' => esc_html__( 'Narrow by difficulty', 'progression-elements-vayvo' ),
'description' => esc_html__( 'Choose a difficulty to display posts', 'progression-elements-vayvo' ),
'label_block' => true,
'multiple' => true,
'type' => Controls_Manager::SELECT2,
'options' => get_field( 'difficulty', false, false ) ?: [],
] );
我想将 ACF 自定义字段的值添加到插件中以缩小查询范围。
这里是我为了检索值而创建的函数:
function vayvo_elements_post_difficulty(){
$post_meta = the_field( array(
'meta_key'=> 'difficulty',
'hide_empty' => false,
));
if ( ! empty( $post_meta ) && ! is_wp_error( $post_meta ) ){
foreach ( $post_meta as $meta_value ) {
$options[ $meta_value->string ] = $post->meta_value;
}
return $options;
}
这里是显示它的代码:
enter $this->add_control(
'progression_post_difficulty',
[
'label' => esc_html__( 'Narrow by difficulty', 'progression-elements-vayvo' ),
'description' => esc_html__( 'Choose a difficulty to display posts', 'progression-elements-vayvo' ),
'label_block' => true,
'multiple' => true,
'type' => Controls_Manager::SELECT2,
'options' => vayvo_elements_post_difficulty(),
]
);
不幸的是,我可以在查询中看到新的参数,但完全是空的,即使我有关于此 meta_key 的帖子也是如此。
有人有想法吗?
此致, 克莱门特
我不太确定我是否遵循。但是根据我的理解,您错误地使用了 the_field
函数,请参阅 documentation here.
您应该能够简单地从 get_field
获取字段值并禁用值格式化。
$this->add_control( 'progression_post_difficulty', [
'label' => esc_html__( 'Narrow by difficulty', 'progression-elements-vayvo' ),
'description' => esc_html__( 'Choose a difficulty to display posts', 'progression-elements-vayvo' ),
'label_block' => true,
'multiple' => true,
'type' => Controls_Manager::SELECT2,
'options' => get_field( 'difficulty', false, false ) ?: [],
] );