如何从Post Object或Relationship类型返回ACF字段?
解决嵌套关系中ACF字段的GraphQL查询问题
问题原因
你遇到的错误是因为WPGraphQL for ACF不会将ACF字段直接挂载到原生Post类型的顶级层级,而是默认嵌套在acf字段下,你的查询直接在Post下调用partNumber,自然会找不到对应字段。
修正后的查询代码
将ACF字段嵌套到acf节点下即可正确查询:
fragment ProductType on Page_Productslug_tables_tableImages_Product { __typename ... on Post { id acf { partNumber storeUrl description } } } query GetProductSlug($id: ID!) { page(id: $id, idType: URI) { productSlug { tables { tableImages { anchorId product { ...ProductType } } } } } }
额外检查项
如果修正查询后仍无法获取字段,请确认以下几点:
- 字段组内的每个字段(
part_number、store_url、description)都单独开启了「Show in GraphQL」选项(仅开启字段组的全局选项不够) - 字段组确实关联到了「帖子」类型,没有选错关联对象
- 进入WPGraphQL设置页面,点击「清除Schema缓存」——修改ACF字段后,Schema不会自动刷新,必须手动清除缓存才能让新字段生效
内容的提问来源于stack exchange,提问作者J. Jackson
相关产品推荐
相关产品推荐

