我为“Tutorials”类别中的所有帖子制作了一个概述页面,如下所示:
<ul class="post-list">
{% for post in site.categories.Tutorials %}
<li>
<span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</span>
<h2>
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
</h2>
{{ post.excerpt }}
</li>
{% endfor %}
</ul>
但是现在我想为包含“Tutorials”类别和“German”类别的帖子制作一个索引页面。但是如何?
我想在这个概述页面中发布这个帖子:
---
layout: post
title: 'German tutorial'
categories: [Tutorials, German]
---
我不希望在此概述页面中发布的帖子是带有这样的标题的帖子:
---
layout: "post"
title: "English totorial"
categories: [Tutorials, English]
---
我试过例如:
{% for post in site.categories.Tutorials & site.categories.German %}
但这不起作用......
如果这样做更容易,我很容易切换到标签而不是类别。
答案 0 :(得分:1)
获取第一个类别数组:site.categories.Tutorials
然后对其中的德语类别帖子进行排序:
{% assign tutorials = site.categories.Tutorials %}
{% comment %}Creates an empty array{% endcomment %}
{% assign germansTutos = "" | split: "/" %}
{% for p in tutorials %}
{% if p.categories contains "German" %}
{% assign germansTutos = germansTutos | push: p %}
{% endif %}
{% endfor %}
<ul>
{% for post in germansTutos %}
<li>{{ post.title }}</li>
{% endfor %}
</ul>
您还可以简单地为帖子分配教程类别和lang变量,并根据where
过滤器的功能对其进行过滤。
例如:
---
layout: post
title: "Post 1"
date: 2016-01-27 00:29:55 +0100
categories: Tutorials
lang: ge
---
Post one
然后您可以按照以下方式对帖子进行排序:
{% assign tutorials = site.categories.Tutorials %}
{% assign germanTutos = tutorials | where: 'lang', 'ge' %}
<ul>
{% for post in germanTutos %}
<li>{{ post.title }}</li>
{% endfor %}
</ul>