列出两个类别中的所有帖子(Jekyll / Liquid)

时间:2018-05-27 03:01:05

标签: jekyll liquid

我需要在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

1 个答案:

答案 0 :(得分:1)

这将返回按两个类别过滤的列表:

{% assign list = site.categories.cooking | where_exp: "post", "post.categories contains 'pictures'" %}

您甚至可以链接多个where_exp过滤器来过滤三个,四个或更多类别。