【问题标题】:Jekyll, Liquid - get posts belonging to category1 and category2Jekyll, Liquid - 获取属于第 1 类和第 2 类的帖子
【发布时间】:2016-01-26 21:49:33
【问题描述】:

我为“教程”类别中的所有帖子制作了一个概览页面,如下所示:

  <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>

但现在我想为具有“教程”类别和“德语”类别的帖子生成一个索引页面。但是怎么做呢?

我希望在此概览页面中发布的帖子是这样的:

---
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  %}

但这不起作用...

如果这样更容易的话,我很容易切换到标签而不是类别。

【问题讨论】:

    标签: jekyll liquid


    【解决方案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>
    

    您还可以简单地为您的帖子分配一个教程类别和一个语言变量,并通过 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>
    

    【讨论】:

    • 我认为语言变量是我真正想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2016-12-22
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多