集合页显示颜色色板:变体元字段返回GID而非颜色Hex值
解决方法
- 你创建的元字段属于元对象引用类型,所以
variant.metafields.custom.color.value返回的是元对象的GID而非直接的Hex值,需要通过GID获取对应元对象实例后再读取目标字段。 - 在Shopify Liquid中按以下步骤操作:
- 通过GID获取元对象实例:
{% assign color_object = variant.metafields.custom.color.value | metafield %} - 读取元对象中的Hex字段(请根据你实际定义的字段名调整,示例中用
hex_code代表存储Hex值的字段):{{ color_object.hex_code }}
- 通过GID获取元对象实例:
- 若需同时获取颜色名称,直接读取对应字段即可:
{{ color_object.name }} - 循环变体时的完整示例:
{% for variant in product.variants %} {% if variant.metafields.custom.color %} {% assign color_meta = variant.metafields.custom.color.value | metafield %} <span class="color-swatch" style="background-color: {{ color_meta.hex_code }};" title="{{ color_meta.name }}"></span> {% endif %} {% endfor %}
内容的提问来源于stack exchange,提问作者Adi
相关产品推荐
相关产品推荐

