Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何将草稿排除在收藏中?液体/电_Arrays_Filtering_Liquid_Eleventy - Fatal编程技术网

Arrays 如何将草稿排除在收藏中?液体/电

Arrays 如何将草稿排除在收藏中?液体/电,arrays,filtering,liquid,eleventy,Arrays,Filtering,Liquid,Eleventy,我第一次用Eleventy建立了一个网站,尽管我已经用Liquid工作了一段时间,但我还是无法破解这个网站 我希望尽可能简化体系结构。这就是我将集合分配给变量的原因: {% assign blogposts = collections.posts %} 因此,稍后在该网站上,我可以写一篇非常简短的文章: {% for post in blogposts %}...{% endfor %} 而不是在文件中将集合分配到它的正上方 现在我的问题是: 我想过滤掉标记为草稿的帖子(在frontmat

我第一次用Eleventy建立了一个网站,尽管我已经用Liquid工作了一段时间,但我还是无法破解这个网站

我希望尽可能简化体系结构。这就是我将集合分配给变量的原因:

{% assign blogposts = collections.posts %}
因此,稍后在该网站上,我可以写一篇非常简短的文章:

{% for post in blogposts %}...{% endfor %} 
而不是在文件中将集合分配到它的正上方

现在我的问题是:

我想过滤掉标记为草稿的帖子(在frontmatter中使用draft:true)。我想我可以像这样做(我试过…)


有人知道我怎样才能做到这一点吗?不幸的是,我觉得Eleventy中使用的液体版本比较旧,而我能找到的文档似乎从来没有提到我如何做到这一点。我真的非常感谢你的帮助!:)

您可以在
.eleventy.js
文件中使用,而不是在模板中过滤集合。这应该起作用:

/.eleventy.js
eleventyConfig.addCollection('posts',collections=>{
//通过标记“post”获取所有帖子
return collections.getFilteredByTag('post'))
//排除所有汇票
.filter(post=>!Boolean(post.data.draft))
});
如果您既需要筛选的帖子列表,也需要完整的帖子列表,还可以使用不同的别名:

/.eleventy.js
eleventyConfig.addCollection('posts',collections=>{
return collections.getFilteredByTag('post');
});
eleventyConfig.addCollection('published_posts',collections=>{
//通过标记“post”获取所有帖子
return collections.getFilteredByTag('post'))
//排除所有汇票
.filter(post=>!Boolean(post.data.draft))
});

谢谢莫里茨!我会试试看。第二个看起来和我需要的一模一样:)
{% assign blogposts = collections.posts | draft: false %}
{% assign blogposts = collections.posts | where: draft, false %}
{% assign blogposts = collections.posts | where: data.draft, false %}
{% assign blogposts = collections.posts_nl | where: "draft", "false" %}