Shopify博客文章产品元字段字符串转数组及循环渲染问题
解决Shopify博客元字段产品列表字符串转数组遍历问题
你遇到的问题是因为Shopify返回的元字段值是JSON格式的字符串,而非原生Liquid数组,直接循环自然无效。可以通过以下步骤处理:
将字符串转成Liquid数组
使用Liquid的parse_json过滤器,把JSON格式的字符串解析成可遍历的数组:{% assign product_gids = article.metafields.blog_post.feature_products | parse_json %}遍历数组并渲染产品
解析出数组后,通过产品GID从all_products对象中获取对应产品,再传入主题的product-grid-item模板渲染:{% assign product_gids = article.metafields.blog_post.feature_products | parse_json %} {% if product_gids.size > 0 %} <div class="product-grid"> {% for gid in product_gids %} {% assign featured_product = all_products[gid] %} {% if featured_product %} {% render 'product-grid-item', product: featured_product %} {% endif %} {% endfor %} </div> {% endif %}
关键说明
parse_json是核心:它能把外观像数组的字符串转换成Liquid原生数组,让循环生效all_products[gid]:Shopify允许通过产品的GID直接从全局all_products对象中获取产品实例- 增加
{% if featured_product %}判断:避免因无效GID导致的渲染错误,提升稳定性
内容的提问来源于stack exchange,提问作者badmintonbolden
相关产品推荐
相关产品推荐

