You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress JSON API中获取ACF关联字段的自定义字段?

解决WordPress REST API无法获取关联自定义文章类型ACF字段的思路
  • 检查ACF字段的REST暴露设置:
    确认关联staff的ACF字段在编辑界面中,是否开启了「在REST API中显示」选项,部分字段默认是关闭状态,需要手动开启。

  • 强制开启关联CPT的REST支持:
    如果staff自定义文章类型是通过CPT UI创建的,先确认它的「启用REST API」选项已勾选,且设置了「REST API基址」。如果未生效,可通过代码强制注册:

    add_action('init', function() {
        $args = get_post_type_args('staff');
        $args['show_in_rest'] = true;
        register_post_type('staff', $args);
    });
    
  • 自定义REST字段手动嵌入关联数据:
    通过钩子直接把关联staff的ACF字段加到plays的API响应里,示例代码:

    add_filter('rest_prepare_play', function($response, $post, $request) {
        // 替换成你的关联字段名
        $staff_ids = get_field('staff_association_field', $post->ID);
        if ($staff_ids) {
            $staff_data = [];
            foreach ($staff_ids as $staff_id) {
                $staff_acf = get_fields($staff_id);
                $staff_post = get_post($staff_id);
                $staff_data[] = array_merge(
                    ['id' => $staff_id, 'title' => $staff_post->post_title],
                    $staff_acf
                );
            }
            $response->data['related_staff'] = $staff_data;
        }
        return $response;
    }, 10, 3);
    
  • 排查ACF递归插件配置:
    确认插件已正确启用,并且在关联字段的设置中,开启了「递归加载ACF字段」的专属选项——部分递归插件需要针对单个字段单独配置,并非全局生效。

  • 插件冲突排查:
    暂时禁用除CPT UI、ACF、ACF to REST API、ACF递归插件外的所有插件,测试API是否正常返回数据。若恢复正常,再逐个启用插件定位冲突源。

  • 主题兼容性测试:
    暂时切换到WordPress默认主题(如Twenty Twenty-Four),排查是否是主题的自定义REST过滤代码移除了关联字段数据。

内容的提问来源于stack exchange,提问作者Rémy Le Dernier Bop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 10:17:31