设置要在jekyll中显示的帖子限制

时间:2017-03-17 16:19:22

标签: jekyll

我需要限制许多帖子集合中列表中显示的帖子数量。我目前正在检查每个帖子的特定名称类别,然后在找到前4个帖子后打破循环。

{% assign count = 0 %}
 {% for post in site.faqs %}
  {% if post.faq_category contains "category-name" %}
   {% assign count = count | plus:1}
    {% if count == 4 %}
    {% break %}
        <li>{{ post.title }}</li>
    {% endif %}
{% endfor %}

但是,这并没有返回任何结果。我不确定我的计数是在错误的地方还是什么。

2 个答案:

答案 0 :(得分:1)

我发现我必须将计数设置在li元素之下:

{% assign count = 0 %}
      {% for post in site.faqs %}
        {% if post.faq_category contains "category-name" %}
          {% assign count = count | plus:1 %}
          <li>{{ post.title }}</li>
          {% if count == 4 %}{% break %}
          {% endif %}
          {% endif %}
      {% endfor %}

答案 1 :(得分:0)

使用计数器,您可以过滤帖子,只在计数器小于4时显示,否则请像以前一样使用break

{% assign count = 0 %}
{% for post in site.faqs %}
  {% if post.faq_category contains "category-name" %}
   {% assign count = count | plus:1}
    {% if count < 4 %}
    <li>{{ post.title }}</li>
    {% endif %}
{% endfor %}

可以创建一个更干净的版本来创建所需类别的faqs项数组,然后将for循环限制为4:

{% assign faqs = site.faqs | where_exp:"item",
"item.faq_category contains 'category-name'" %}
<ul>
{% for post in faqs limit:4 %}
<li>{{post.title}}</li>
{% endfor %}
</ul>