打印出jekyll中两个不同类别的帖子

时间:2017-03-16 11:36:12

标签: json for-loop jekyll liquid

我们在项目中使用了四种不同的帖子类别(开发人员,新闻,服务和职业),我知道如何同时打印所有帖子:

{% for post in site.posts %}
  <li>{{ post.title }}</li>
{% endfor %}

或每个类别的所有帖子分开:

{% for post in site.categories.news %}
  <li>{{ post.title }}</li>
{% endfor %}

我正在努力的是在同一个for循环中仅打印来自两个类别(开发人员和新闻)的帖子。

这是我们的文件夹结构:

_posts /

  • 博客/
    • 开发商/
    • 新闻/
  • 服务/
  • 事业/

帖子文件如下(2017-03-16_my_post.md):

---
title: "Dev post Title"
categories: developers
layout: developer
---

我尝试过类似的东西,但我想你不能在for循环中添加两个参数,因为这不起作用。它只打印第一个参数的帖子,完全忽略第二个参数:

{% for post in site.categories.developers and site.categories.news %}
    <li>{{ post.title }}</li>
{% endfor %}

任何想法如何处理这个?我找不到任何可行的解决方案。任何帮助将非常感谢!非常感谢!

2 个答案:

答案 0 :(得分:1)

要过滤包含两个类别的帖子,您需要浏览所有帖子并使用&#34; if&#34;运算符与&#34;和&#34;:condition A and condition B

{% for post in site.posts %}
{% if post.categories contains "developer" and post.categories contains "news" %}
 <li>{{ post.title }}</li> 
{% endif %}
{% endfor %}

然后它只会显示包含开发者和新闻强文类别的帖子。

答案 1 :(得分:-1)

经过几个小时试图解决这个问题并失去耐心,我终于做对了..这个循环结合if语句只会打印这两个类别的帖子:

{% for post in site.posts %}
    {% if post.categories contains 'news' or post.categories contains 'developers' %}
        <li>{{ post.title }}</li>
    {% endif %}
{% endfor %}

希望它能节省一些时间:)