Shopify多字段元字段项目总数获取异常:Liquid代码返回空白问题求助
解决Shopify Liquid中多字段元字段.size返回空白的问题
我来帮你一步步排查可能的原因和解决办法:
1. 先确认元字段类型是否支持.size属性
Shopify里只有数组/列表类元字段(比如「List of Files」「List of Products」「List of References」这类)才能用.size获取元素数量。如果你的custom.gallery是单值类型(比如「Single Line Text」「Object」),那gallery可能是单个字符串、对象或者空值,调用.size自然会返回空白。
解决办法:
- 进入Shopify后台,找到对应文章的元字段设置,检查
custom.gallery的类型是否为列表/数组类。如果不是,改成对应的列表类型并重新赋值后再测试。
2. 验证元字段是否正确加载
有可能是元字段的命名空间、键名写错了,或者当前文章根本没给这个元字段赋值,导致gallery是空值(nil),调用.size就会返回空白。
调试方法:
在代码里加入这句,查看gallery的实际内容:
{{ gallery | inspect }}
如果输出是nil或者空对象,说明元字段没正确加载:
- 检查命名空间:确认是
custom还是第三方App的其他命名空间 - 检查键名:确认
gallery拼写完全一致 - 确认当前文章已经给这个元字段添加了内容
3. 检查元字段的结构是否需要深层取值
有些复杂的多字段元字段(比如自定义对象数组),gallery本身可能是一个包含数组的对象,而不是直接的数组。比如返回结构可能是{ "items": [{}, {}, {}] },这时候直接调用.size无效,需要先取到数组部分:
{% assign gallery_items = article.metafields.custom.gallery.value.items %} {{ gallery_items.size }}
同样可以用{{ gallery | inspect }}查看结构,确认数组所在的具体键名。
4. 兜底处理:避免空白输出
如果担心元字段为空的情况,可以用默认值兜底,确保输出数字而不是空白:
{{ gallery | default: [] | size }}
内容的提问来源于stack exchange,提问作者Anta
相关产品推荐
相关产品推荐

