2017-05-23 56 views
0

我想获得具有如何检查列表中是否存在值?

我尝试下面的代码,它迭代当前帖子页的所有标记(标记当前t)其前面的问题(*)的特定标签帖子列表,然后在所有的职位(p)迭代,以检查他们是否有这个标签(和公正的输出标题,用于调试的原因):

{% for t in page.tags %} 
    {% for p in site.posts %} 
     {% if t in p.tags %} 
      {{ p.title }} 
     {% endif %} 
    {% endfor %} 
{% endfor %} 

线{% if t in p.tags %}似乎失败(我来形成一个Python背景,使我试了一下),我找不到液体中的in操作员。它退出了吗?

(*)我提到了我想达到的目的,以防万一有更直接的方法来实现这一点,但我仍然对一般问题感兴趣。

回答

1

按照您例如,它可以与contains标签来完成:

包含还可以检查字符串的 字符串数组存在。

{% if product.tags contains "outdoor" %} 
This product is great for 
using outdoors! 
{% endif %} 

因此,要获得在他们的前面的问题的特定标签(在这种情况下,与标签mytag的职位)职位列表:

{% assign posts_with_mytag = site.posts | where_exp:"item", 
"item.tags contains 'mytag'" %} 

{% for post in posts_with_mytag %} 
<a href="{{post.url}}">{{post.title}}</a> 
{% endfor %} 
0

上@ maracuny的回答跟进,从我的问题完整性更正的代码:

{% for t in page.tags %} 
    {% for p in site.posts %} 
     {% if p.tags contains t %} 
      {{ p.title }} 
     {% endif %} 
    {% endfor %} 
{% endfor %}