我希望创建一个产品页面的一部分,在该部分中,我会在某个系列中展示畅销产品,但省略显示其产品页面的产品。
截至目前,除了默认排序方式外,我没有看到任何对集合对象进行排序的选项。同样,我没有看到从返回的结果中省略给定product.id
的方法。
目前,我的代码如下所示:
{% for top_product in collections['somecollection'].products limit:4 %}
<div class="top-seller-item">
<img src="{{ top_product.images[0] | img_url: '1024x1024' }}"/>
<a href="{{ top_product.url }}">{{ top_product.title }}</a>
</div>
{% endfor %}
这只返回集合somecollection
的前四个产品。
我无法想象这是一个不常见的用例,所以有人知道一种方法来做SORTBY sales OMIT product.id
(伪代码当然,但这就是想法)。
答案 0 :(得分:1)
您需要将集合的排序顺序设置为&#34; Best Selling&#34;。
之后,您需要创建一个计数器变量,用于计算循环中的唯一产品。
此外,您必须将限制更改为5,这样即使产品出现在前4个产品中,您也会获得4个元素。
在代码中它看起来像这样:
{%- assign counter = 0 -%}
{% for top_product in collections['somecollection'].products limit:5 %}
{%- unless top_product.id == product.id or counter >= 4 -%}
{%- assign counter = counter | plus: 1 -%}
<div class="top-seller-item">
<img src="{{ top_product.images[0] | img_url: '1024x1024' }}"/>
<a href="{{ top_product.url }}">{{ top_product.title }}</a>
</div>
{%- endunless -%}
{% endfor %}