2016-03-13 36 views
2

我想循環瀏覽網站上除帖子unlisted以外的帖子。我可以通過在for循環中嵌套if語句來完成此操作,但是當我還想指定limit時,這種情況就會崩潰 - 循環將僅運行5次,而不管帖子是否通過檢查。循環遍歷液體中某些類別的帖子的所有列表

{% for post in site.posts limit: 5 %} 
    {% unless post.categories contains 'unlisted' %} 
    <!-- display post --> 
    {% endunless %} 
{% endfor %} 

我需要傳遞一個已經過濾的列表for循環,但我不能這樣做,主要是因爲我無法找到一種方法來where濾波器contains和否定結合:

{% for post in site.posts | WHERE CATEGORIES NOT CONTAINS 'UNLISTED' | limit: 5 %} 
    <!-- display post --> 
{% endfor %} 

回答

4

您可以使用計數器:

<ul> 
{% assign postCounter = 0 %} 
{% assign maxPost = 5 %} 
{% for post in site.posts %} 
    {% unless post.categories contains 'unlisted' %} 
    <li><a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></li> 
    {% assign postCounter = postCounter | plus: 1 %} 
    {% if postCounter >= maxPost %} 
     {% break %} 
    {% endif %} 
    {% endunless %} 
{% endfor %} 
</ul>