2017-03-17 74 views
1

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

{% 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 %} 

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

回答

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 %} 
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>