过滤后限制列表中的条目数
Limit number of entries in a list after its filtered
我有一个列表,我需要在其中限制已经被标签过滤的条目数量。因为我需要在条目过滤后 发生限制,所以我不能使用“|limit(10)”,因为它只适用于 for 循环,而不适用于 if 语句。
过滤前限制的问题是它只检查限制告诉它的条目数,所以如果那个条目数不匹配,结果我得到 0 个条目......这不是我的意思寻找,我需要前 10 个具有我需要过滤的标签的条目。
这是我现在拥有的,条目显示,排序作品,过滤作品:
---
pagecategory: 'potato'
---
{%- for review in collections.partner | sort(false, false, 'data.order_on_page') -%}
{% if review.data.tags.includes(pagecategory) %}
<p>{{review.data.title}}</p>
{% endif %}
{%- endfor -%}
条目可以有多个标签,所以我无法检查与 'pagecategory'.
的完全匹配
我搜索了 nunjucks 文档以及整个网络,但我只找到了相反的解决方案 - 在过滤之前限制条目数量 - 这是行不通的。
过滤后如何限制?
如果 data.tags.includes() 是自定义标签过滤器则有效:
eleventyConfig.addFilter('filterByTag', (posts, tag) => posts.filter(p => p.data.tags.includes(tag)))
所以不需要 if 语句:
{%- for review in collections.partner | filterByTag(pagecategory) | limit(settings.list_limit) | sort(false, false, 'data.order_on_page') -%}
<p>{{review.data.title}}</p>
{% endif %}
{%- endfor -%}
我有一个列表,我需要在其中限制已经被标签过滤的条目数量。因为我需要在条目过滤后 发生限制,所以我不能使用“|limit(10)”,因为它只适用于 for 循环,而不适用于 if 语句。
过滤前限制的问题是它只检查限制告诉它的条目数,所以如果那个条目数不匹配,结果我得到 0 个条目......这不是我的意思寻找,我需要前 10 个具有我需要过滤的标签的条目。
这是我现在拥有的,条目显示,排序作品,过滤作品:
---
pagecategory: 'potato'
---
{%- for review in collections.partner | sort(false, false, 'data.order_on_page') -%}
{% if review.data.tags.includes(pagecategory) %}
<p>{{review.data.title}}</p>
{% endif %}
{%- endfor -%}
条目可以有多个标签,所以我无法检查与 'pagecategory'.
的完全匹配我搜索了 nunjucks 文档以及整个网络,但我只找到了相反的解决方案 - 在过滤之前限制条目数量 - 这是行不通的。 过滤后如何限制?
如果 data.tags.includes() 是自定义标签过滤器则有效:
eleventyConfig.addFilter('filterByTag', (posts, tag) => posts.filter(p => p.data.tags.includes(tag)))
所以不需要 if 语句:
{%- for review in collections.partner | filterByTag(pagecategory) | limit(settings.list_limit) | sort(false, false, 'data.order_on_page') -%}
<p>{{review.data.title}}</p>
{% endif %}
{%- endfor -%}