Shopify中如何获取元字段(Metafield)的后台显示名称?
在Shopify中获取元字段的后台显示名称
直接用Liquid模板没法直接获取元字段的后台显示名称(也就是你在后台定义元字段时填的“名称”),因为产品对象里的元字段只存了key、命名空间(namespace)、值这些实例数据,后台显示的名称属于元字段定义(Metafield Definition)里的信息,不会跟着产品元字段一起返回给模板。
有两种可行的解决办法:
- 手动映射(适合元字段数量少的场景)
在模板里写一个哈希对象,把你的元字段命名空间+key和对应的后台名称做映射,比如:{% assign metafield_labels = { "custom": { "material": "材质", "size_guide": "尺码指南" } } %} {% assign my_metafield = product.metafields.custom.material %} <!-- 输出后台显示的名称 --> {{ metafield_labels[my_metafield.namespace][my_metafield.key] }} - 通过Shopify API获取(适合元字段多或需要动态更新的场景)
用GraphQL或REST API调用元字段定义接口,根据元字段的命名空间和key筛选,就能拿到对应的后台显示名称。比如GraphQL查询示例:
这个查询会返回key为query { metafieldDefinitions(first: 1, filters: {namespace: "custom", key: "material"}) { edges { node { name } } } }material、命名空间为custom的元字段定义里的name(也就是后台显示的名称)。你可以把这个API请求放在主题的sections或snippets里,通过AJAX或者预渲染的方式拿到数据后展示。
- 手动映射(适合元字段数量少的场景)
内容的提问来源于stack exchange,提问作者Sean Daly
相关产品推荐
相关产品推荐

