在Shopify收集网格中有条件地嵌入非产品元素

在Shopify收集网格中有条件地嵌入非产品元素,shopify,Shopify,这看起来很简单,但在研究和闲逛了几个小时后,我还是搞不懂。我的目标是在Shopify收集网格中插入一个非产品HTML块,如第1行第3列中的“享受免费地面运输”块: 我的集合网格设置为每页4行3列,我希望用3个或更多产品替换所有集合页面第2行第1列的块 我需要修改的液体回路是: <ul class="product-grid clearfix"> {% for product in collection.products %} <li{% cycle

这看起来很简单,但在研究和闲逛了几个小时后,我还是搞不懂。我的目标是在Shopify收集网格中插入一个非产品HTML块,如第1行第3列中的“享受免费地面运输”块:

我的集合网格设置为每页4行3列,我希望用3个或更多产品替换所有集合页面第2行第1列的块

我需要修改的液体回路是:

    <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
    检查以零为底的循环索引


    请让我知道这是否对你有用。祝你好运

    哈啰,我是独角兽!我发布的答案最终对你有用吗?如果没有,请告诉我,我会再试一次。谢谢非常感谢!这正是我需要的。