在For Loop Liquid中添加变量

时间:2018-04-18 00:13:09

标签: shopify liquid

是否可以在for循环语句中分配变量并使用该变量?

我试图在博客中放置一系列产品,而不必为每个需要收藏的文章创建新的for循环。

我所做的就是使用文章的标签并在收集句柄之前拆分,这样我就可以在for循环中注入它,但它还没有动态地工作......

这就是我所做的......我在文章标签中添加了

collection_some-page-handle
然后在article.liquid

    {% for tag in article.tags %}

      {% assign tagMap = tag | split: '_' %}
      {% if tagMap.first == 'collection' %}
        {% assign collectionName = tagMap.last %}
      {% endif %}
    {% endfor %}
    {{collectionName}} <!-- this shows the handle of the collection -->
    {% for product in collections.collectionName.products limit: 8%}
    <div class="productWrap">
            <a href="{{ product.url}}"><img src="{{ product.featured_image | product_img_url: 'medium' }}" alt=""></a>
          <a href="{{product.url}}"><p class="product_title" style="border-top:1px solid #efefef;">{{ product.title | split: ' - ' | first }}</p></a>
    </div>
    {%endfor%}

现在如果我尝试将变量放在for循环中它不起作用,但当然如果我把实际的句柄运行起来。有没有办法动态地做到这一点?

1 个答案:

答案 0 :(得分:3)

而不是使用collections.collectionName使用collections[collectionName]

如果您的变量确实具有正确的句柄,这应该可以解决您的问题。

澄清何时使用collections.collectionName,你说 - &#34;给我一个处理collectionName`的集合。

当您使用collections[collectionName]时,您说 - &#34;使用变量collectionName作为句柄为我创建一个集合。&#34;