Shopify Liquid主题中ACF重复组字段无法循环的问题咨询
解决Shopify+ACF重复器组字段循环失败的问题
核心问题分析
你遇到的问题本质是没搞清楚ACF在Shopify中生成元字段的规则,以及错误地通过遍历所有元字段+标题匹配的方式获取数据——这种方式不仅效率低,还容易因为标题不匹配导致失效。另外你说的“无法设置Key/Namespace”是误解:ACF里的字段Slug就是元字段的Key,命名空间默认是acf,只是你没找到对应的设置项。
分步解决方案
1. 找到ACF字段的Slug(即元字段的Key)
进入ACF的字段组编辑页面,找到你创建的FAQ重复器组:
- 字段的Slug就是Shopify元字段的
Key(比如你可以把标题为“Repeater Group Title”的字段Slug设为faq_repeater)。 - 命名空间默认是
acf,如果需要自定义,可在ACF全局设置里修改「Metafield Namespace」。

2. 修正Liquid代码,直接通过命名空间+Key访问
不要遍历所有元字段,直接用page.metafields.[命名空间].[字段Slug]的方式获取重复器组数据,这样更可靠:
{% comment %} 先判断字段是否存在,避免报错 {% endcomment %} {% if page.metafields.acf.faq_repeater %} {% for item in page.metafields.acf.faq_repeater %} {% comment %} 替换成你ACF里实际的子字段Slug,比如question/answer {% endcomment %} <h2>{{ item.question }}</h2> <p>{{ item.answer }}</p> {% endfor %} {% endif %}
3. 验证子字段Slug匹配
确保代码里的item.question、item.answer和你ACF里重复器组的子字段Slug完全一致——如果子字段Slug是field1、field2,就用item.field1、item.field2。
为什么原来的代码失效?
- Shopify元字段的
title和ACF的字段标题不一定完全对应,通过标题匹配容易出错。 - 遍历所有
page.metafields会包含其他无关元字段,增加不必要的渲染开销。 - ACF生成的重复器组数据是直接存储在
metafields.acf.[字段Slug]下的数组,直接访问才是正确姿势。
内容的提问来源于stack exchange,提问作者Fernando Souza
相关产品推荐
相关产品推荐

