是否可以在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循环中它不起作用,但当然如果我把实际的句柄运行起来。有没有办法动态地做到这一点?
答案 0 :(得分:3)
而不是使用collections.collectionName
使用collections[collectionName]
。
如果您的变量确实具有正确的句柄,这应该可以解决您的问题。
澄清何时使用collections.collectionName
,你说 - &#34;给我一个处理collectionName`的集合。
当您使用collections[collectionName]
时,您说 - &#34;使用变量collectionName
作为句柄为我创建一个集合。&#34;