在Jekyll,我有一个小型博客系统,分为两类:blog
和portfolio
。我有两个页面将为这些类别呈现帖子,其中for
循环看起来像这样:
{% for post in site.categories['blog'] %}
…
{% endfor %}
在我的主页上,我想显示blog
类别中的最新帖子。但是,我希望我的博客也能包含我的一些摄影作品 - 这些作品会以帖子形式存在,但大多数时候它们没有标题或正文内容 - 它们只是一个图像。我不希望这些帖子显示在主页上。
实际上,我只想在主页上显示最新的博文,不包括所有摄影帖子。我正在考虑我的选择:
blog
和photos
。但是,如何让我的博客页面显示这两个类别的帖子?我实际上需要合并数组site.categories['blog']
和site.categories['photos']
,并将它们放入for
循环 - 但这可能吗?blog
,但在其他方面,排除没有标题的帖子出现在主页上。但你是怎么做到的?这可能吗?
答案 0 :(得分:7)
在博客页面上,您可以使用:
{% for post in site.posts %}
…
{% endfor %}
检索所有帖子并全部显示。如果您想要过滤更多(例如,您有第三个类别,您不希望在此页面上显示:
{% for post in site.posts %}
{% if post.categories contains 'post' or post.categories contains 'photos' %}
...
{% endif %}
{% endfor %}
答案 1 :(得分:0)
这里一个简单的方法是使用Jekyll categories。
将您的帖子放入_posts文件夹的子目录中:
_posts/
blog/
post.md
photos/
photo.md
然后在index.html或其他任何地方,您可以按如下方式引用单独的类别:
<h1>Blog</h1>
{% for post in site.categories.blog %}
{{ post.title }}
{% endfor %}
<h2>Photos</h2>
{% for photo in site.categories.photos %}
{{ photo.title }}
{% endfor %}
您可以使用site.posts
访问所有帖子。
对于相关的github问题“Multiple _posts目录”,请参阅 https://github.com/jekyll/jekyll/issues/1819#issuecomment-30441840