在Shopify收集网格中有条件地嵌入非产品元素
这看起来很简单,但在研究和闲逛了几个小时后,我还是搞不懂。我的目标是在Shopify收集网格中插入一个非产品HTML块,如第1行第3列中的“享受免费地面运输”块: 我的集合网格设置为每页4行3列,我希望用3个或更多产品替换所有集合页面第2行第1列的块 我需要修改的液体回路是:在Shopify收集网格中有条件地嵌入非产品元素,shopify,Shopify,这看起来很简单,但在研究和闲逛了几个小时后,我还是搞不懂。我的目标是在Shopify收集网格中插入一个非产品HTML块,如第1行第3列中的“享受免费地面运输”块: 我的集合网格设置为每页4行3列,我希望用3个或更多产品替换所有集合页面第2行第1列的块 我需要修改的液体回路是: <ul class="product-grid clearfix"> {% for product in collection.products %} <li{% cycle
<ul class="product-grid clearfix">
{% for product in collection.products %}
<li{% cycle '', '', ' class="last-in-row"' %}>
{% include 'product-grid-item' %}
</li>
{% endfor %}
</ul>
{%用于集合中的产品。产品%}
{%include'产品网格项“%”
{%endfor%}
有人有什么见解吗?欢迎来到Stack Overflow!:-) 首先,让我对其进行伪编码,以确保我们在同一页上,并且逻辑正确
for each product in collection
{
is this the 4th iteration of the loop?
(in other words, is it the first item in the second row)
{
Add an <li> for the custom non-product block.
}
Add an <li> for the standard product block
}
集合中每个产品的
{
这是循环的第四次迭代吗?
(换句话说,它是第二行的第一项吗)
{
为自定义非产品块添加。
}
为标准产品块添加
}
如果这个逻辑符合你的要求,这是液体中的真品
<ul class="product-grid clearfix">
{% for product in collection.products %}
{% if forloop.index == 4 %}
<li{% cycle '', '', ' class="last-in-row"' %}>
{% include 'your-custom-block-element' %}
</li>
{% endif %}
<li{% cycle '', '', ' class="last-in-row"' %}>
{% include 'product-grid-item' %}
</li>
{% endfor %}
</ul>
{%用于集合中的产品。产品%}
{%if-forloop.index==4%}
{%include'您的自定义块元素“%”
{%endif%}
{%include'产品网格项“%”
{%endfor%}
您可能已经注意到,Shopify默认处理基于1的索引。这就是为什么我们要寻找forloop.index==4
。在几乎所有其他语言中,我们都会处理一个基于零的索引,并检查forloop.index==3
如果此约定使您出错,您可以始终使用forloop.index0
检查以零为底的循环索引
请让我知道这是否对你有用。祝你好运 哈啰,我是独角兽!我发布的答案最终对你有用吗?如果没有,请告诉我,我会再试一次。谢谢非常感谢!这正是我需要的。