我需要在for循环中列出包含BOTH类别的所有帖子。
{% assign cooking_pages = site.categories.cooking & site.categories.pictures %}
显然上面的内容不起作用,但这基本上就是我想做的事情。
我知道我可以这样做:
{% assign cooking_pages = site.categories.cooking | sort:"title"%}
{% for post in cooking_pages %}
{% if post.categories contains 'pictures' %}
Do whatever I want to do
{% endif %}
{% endfor %}
但是我的函数使用loopindex和modulo,所以if语句会让事情变得混乱。 有没有办法选择BOTH类别中存在的帖子?
这是我的实际代码:
{% assign sorted_pages = (site.categories.2018 | sort:"date") | reverse %}
<table>{% for post in sorted_pages %}
{% assign loopindex = forloop.index | modulo: 3 %}
{% if loopindex == 1 %}
<tr><td id="entries"><strong><a href="{{ post.url }}">{{ post.title }}</a></strong></td>
{% elsif loopindex == 0 %}
<td id="entries"><strong><a href="{{ post.url }}">{{ post.title }}</a></strong></td></tr>
{% else %}
<td id="entries"><strong><a href="{{ post.url }}">{{ post.title }}</a></strong></td>
{% endif %}
{% endfor %}</table>
它在这个页面上为我提供了很好的表格:https://200wordrpg.github.io/2018entries
答案 0 :(得分:1)
这将返回按两个类别过滤的列表:
{% assign list = site.categories.cooking | where_exp: "post", "post.categories contains 'pictures'" %}
您甚至可以链接多个where_exp
过滤器来过滤三个,四个或更多类别。