假设我有一个标记列表:iFix_6.3
,iFix_7.0
,iFix_7.1
,iFix_8.0
,announcement
等等...我想要仅在某些几个标记上运行操作。如何检查这些多个值?
有contains
,但我正在寻找它的反面和多个值......
以下是我实际过滤掉包含iFix_6.3
标记的所有帖子的示例,从而显示所有其他帖子。这实际上还不起作用......需要扩展以适用于多个标签。
// posts with iFix_xxx tag should be filtered from the main posts view.
{% assign postUpdates = site.posts | where_exp:"item", "item.tags != 'iFix_6.3'" %}
{% for post in postUpdates limit:10 %}
<div class="postItem inline">
<p class="postDate">{% if post.pinned %}<span class="glyphicon glyphicon-pushpin"></span>{% endif %}{{post.date | date: '%B %d, %Y'}}</p>
<p class="postTitle"><a href="{{site.baseurl}}{{post.url}}">{{post.title}}</a></p>
</div>
{% endfor %}
答案 0 :(得分:1)
您可以使用excluded_tags
和逗号分隔的标记字符串构建排除标记数组(split
)来完成此操作。然后,对于每个帖子,您迭代帖子的标签。使用excluded_tags
检查标记是否在contains
,如果是,则使用filtered_out
控制流标记将标记unless
提升为不显示帖子。
{% assign excluded_tags = "iFix_6.2,iFix_6.3,announcement" | split : "," %}
{% for post in site.posts limit:10 %}
{% assign filtered_out = False %}
{% for tag in post.tags %}
{% if excluded_tags contains tag %}
{% assign filtered_out = True %}
{% break %}
{% endif %}
{% endfor %}
{% unless filtered_out %}
...
{% endunless %}
{% endfor %}
答案 1 :(得分:0)
似乎unless
会解决问题。
{% assign postUpdates = site.posts | where_exp:"item", "unless item.tags contains 'iFix_6.3'" %}