如何在 "where:" 中使用布尔取反?

How to use boolean negation in "where:"?

我正在尝试编写一个查询来检索所有类别的帖子,但类别 "Personal"。

我有以下代码来检索所有标记为 "Personal" 的帖子,所以我尝试使用“!”和“not”来获取不是 "Personal".[=14 的帖子=]

{% assign sorted-posts = site.posts | where: "categories", "Personal" %}
  ...
{% endfor %}

所以,我尝试了这个:

{% assign sorted-posts = site.posts | not where: "categories", "Personal" %}
  ...
{% endfor %}

{% assign sorted-posts = site.posts | ! where: "categories", "Personal" %}
  ...
{% endfor %}

没用。如何在 Liquid 中使用“not”或“!”?

因为post.categories是一个数组,你可以用contains过滤器检查它是否包含某个值。例如:if post.categories contains "Personal"

相当于 "if not"unless 控制流标签现在可用于打印所有不属于 "personal" 类别的帖子。

<ul>
{% for post in site.posts %}
  {% unless post.categories contains "Personal" %}
    <li><a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></li>
  {% endunless %}
{% endfor %}
</ul>