Jekyll, Liquid - 获取属于类别 1 和类别 2 的帖子
Jekyll, Liquid - get posts belonging to category1 and category2
我为类别 "Tutorials" 中的所有 post 制作了一个概览页面,如下所示:
<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>
但现在我想为 post 生成一个包含类别 "Tutorials" 和类别 "German" 的索引页。但是怎么办?
我想在这个概览页面中的post是这个:
---
layout: post
title: 'German tutorial'
categories: [Tutorials, German]
---
我不希望出现在该概览页面中的帖子是 post 带有 header 的帖子,如下所示:
---
layout: "post"
title: "English totorial"
categories: [Tutorials, English]
---
我试过例如:
{% for post in site.categories.Tutorials & site.categories.German %}
但这行不通...
我很容易切换到标签而不是类别,如果这样更容易的话。
获取第一个类别数组: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>
您还可以简单地为您的帖子分配一个教程类别和一个语言变量,并通过 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>
我为类别 "Tutorials" 中的所有 post 制作了一个概览页面,如下所示:
<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>
但现在我想为 post 生成一个包含类别 "Tutorials" 和类别 "German" 的索引页。但是怎么办?
我想在这个概览页面中的post是这个:
---
layout: post
title: 'German tutorial'
categories: [Tutorials, German]
---
我不希望出现在该概览页面中的帖子是 post 带有 header 的帖子,如下所示:
---
layout: "post"
title: "English totorial"
categories: [Tutorials, English]
---
我试过例如:
{% for post in site.categories.Tutorials & site.categories.German %}
但这行不通...
我很容易切换到标签而不是类别,如果这样更容易的话。
获取第一个类别数组: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>
您还可以简单地为您的帖子分配一个教程类别和一个语言变量,并通过 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>