为什么 ACF 高级自定义字段在使用 post_id 时返回一组帖子而不是单个帖子

问题描述 投票:0回答:1

我有一个带有关系字段的帖子类型。

events 有一个字段调用 event_organiser,它被设置为与组织者表的关系。

当我查询组织者的活动时,它返回一个组织者数组(仅存在数组元素 0。 我已将 ACF 上的验证设置为最小 1 最大 1,但它仍然返回单个元素数组。

get_field('event_organiser', $post_id)

我想用的是

get_field('event_organiser, $post_id)['post_title']

我要做的是

get_field('event_organiser, $post_id)[0]->post_title

当它应该只返回一个对象而不是一个数组时,我不喜欢强制 [0] 在那里。

我应该接受事实吗?

wordpress advanced-custom-fields
1个回答
0
投票

ACF 这样做是因为该字段支持多个帖子,因此最好有一个一致的返回类型。 如果需要,

acf/format_value
过滤器可用于解决这种情况(未经测试):

add_filter( 'acf/format_value/type=relationship', static function ( $value ) {
    if ( ! is_array( $value ) ) {
        return $value;
    }

    if ( count( $value ) > 1 ) {
        return $value;
    }

    return array_pop( $value );
} );
© www.soinside.com 2019 - 2024. All rights reserved.