我想循环浏览网站上的帖子,但类别为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 %}
答案 0 :(得分: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>