Shopify Liquid循环计数重置问题:过滤停产产品后展示不全
解决Shopify推荐区跳过停产产品后数量不足的问题
你原来的代码之所以失效,是因为Liquid的limit参数在循环启动时就已经确定了数值,循环过程中用{% increment number_of_products %}修改变量根本影响不了已经生效的限制——哪怕你跳过了停产产品,循环到设定的次数就会直接停止,自然会出现展示数量不够的情况。
正确的做法是先过滤掉带'discontinued'标签的产品,再从筛选后的有效产品里取指定数量,代码示例如下:
{% comment %} 先筛选出所有非停产的产品 {% endcomment %} {% assign valid_products = related_collection.products | where_exp: "product", "product.tags contains 'discontinued' == false" %} {% comment %} 从有效产品中取你需要的数量(比如4个,或者用section设置值) {% endcomment %} {%- for product in valid_products limit: 4 -%} {%- render 'product-grid-item', product: product, per_row: section.settings.products_per_row, quick_shop_enable: settings.quick_shop_enable, fallback: '39vw', -%} {%- endfor -%}
如果你的数量限制是通过后台section设置的(比如section.settings.number_of_products),把limit:4改成limit: section.settings.number_of_products即可。
这种方式先把所有符合要求的产品挑出来,再从中截取指定数量,就能保证最终展示的商品数量完全符合你的需求,不会因为跳过停产产品出现空缺。
内容的提问来源于stack exchange,提问作者dan k
相关产品推荐
相关产品推荐

