我需要限制许多帖子集合中列表中显示的帖子数量。我目前正在检查每个帖子的特定名称类别,然后在找到前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 %}
但是,这并没有返回任何结果。我不确定我的计数是在错误的地方还是什么。
答案 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>