我正在尝试输出一个帖子标题列表,其中包含所有类别中的5个最新帖子但是一个。它适用于过滤,遗憾的是,它会考虑到限制所排除的帖子。有没有简单的方法可以不计算被排除的帖子?
{% for post in site.posts limit: 5 %}
{% if post.category == "news" %}
//Do nothing
{% else if %}
{{ post.title }}
{% endif %}
{% endfor %}
答案 0 :(得分:2)
要限制过滤的帖子,您需要先过滤它们。
我们创建了一系列不包含news
类别的帖子:
{% assign no_news = "" | split: "" %}
{% for post in site.posts %}
{% unless post.categories contains 'news' %}
{% assign no_news = no_news | push: post %}
{% endunless %}
{% endfor %}
现在我们将这个新的数组限制迭代遍历5:
{% for post in no_news limit: 5 %}
{{ post.title }} - {{post.categories}}
{% endfor %}
它将输出5个不包含news
类别的帖子。
答案 1 :(得分:0)
你应该能够先分配帖子,然后再打电话给他们:
{% assign relevant = site.posts | except:"category","news" %}
{% for posts in relevant limit:5 %}
{{ post.title }}
{% endfor %}