我正在试图弄清楚如何创建一个过滤器列表,它从_products目录中抓取产品标题,只有当有一个带有产品标题的故事时,它才会在列表中显示标题。
我有一个包含11个项目的_products列表,我可以全部显示它们,但我想从筛选项列表中删除一个项目,如果它是标题!=一个元素在一个单独的故事列表的前面。目录
max
这样做只会显示具有匹配成功故事的项目,但如果有多个故事与同一产品相关,那么它将不止一次地显示该产品。
我已经过滤了,只是显示了我无法解决的问题。
谢谢!
答案 0 :(得分:0)
我觉得您正在寻找contains
过滤器。
直接来自Liquid for Designers wiki:
# array = 1,2,3 {% if array contains 2 %} array includes 2 {% endif %}
在你的情况下,我猜你想要:
{% assign product = site.products %}
{% assign successfulProducts = site.success-stories | map: 'product' %}
{% for product in site.products %}
{% if successfulProducts contains product.title %}
... {{ product }} ...
{% endif %}
{% endfor %}
我在第2行所做的全部内容是mapping success-stories
到successfulProducts
。基本上每个story
元素都被其story.product
属性替换。
然后我循环浏览所有像你这样的产品,并检查每个产品是否应该显示。但我并没有遍历所有故事 - 相反,我提出了一个简单的条件,检查successfulProducts
是否包含产品标题,就像您指定的那样。