循环通过所有不属于流动类别的帖子列表

时间:2016-03-13 18:23:13

标签: jekyll liquid

我想循环浏览网站上的帖子,但类别为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 %}

1 个答案:

答案 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>