我需要在paginate循环中排除一个集合。但是如果我使用条件语句,它仍将以分页计数计算。
因此,如果我按10分页并且第一页中有2个产品来自排除的集合,我将只在第一页中看到8个产品。
任何解决方案?这是我的片段:
{% paginate collection.products by 10 %}
<ul>
{% for product in collection.products %}
<!-- Check for collection -->
{% assign is_treatment = false %}
{% for c in product.collections %}
{% if c.handle == "salon-treatment" %}
{% assign is_treatment = true %}
{% endif %}
{% endfor %}
{% unless is_treatment %}
<li>{{ product.title }}</li>
{% endunless %}
{% endfor %}
</ul>
{% endpaginate %}
注意:此问题与the one I posted in Shopify forum重复。
答案 0 :(得分:1)
我为这样的事情所做的是首先将所有期望的产品加载到我自己的集合中(基本上是一个对象数组),然后对该数组进行分页...所以,如果你写了一个名为 exclude_some_products 的函数,它返回所有未被包含的产品,执行以下操作:
{% assign my_smaller_collection = exclude_some_products collection %}
{% paginate my_smaller_collection.products by 10 %}
<ul>
{% for product in my_smaller_collection.products %}
<!-- Check for collection -->
{% assign is_treatment = false %}
{% for c in product.collections %}
{% if c.handle == "salon-treatment" %}
{% assign is_treatment = true %}
{% endif %}
{% endfor %}
{% unless is_treatment %}
<li>{{ product.title }}</li>
{% endunless %}
{% endfor %}
</ul>
{% endpaginate %}
P.S。请原谅我的代码,我甚至不确定这是什么语言!