2017-08-09 30 views
1

在我的前的一些页面(不是全部),我有:液体过滤器集合,其中不为空

--- 
top-navigation: 
    order: 2 
--- 

使用液体我要滤除由top-navigation.ordertop-navigation对象和分类网站的所有网页。

我在尝试sort:'top-navigation.order'但这是抛出一个例外undefined method [] for nil:NilClass。我试过where:"top-navigation", true,但它并不等同于真值。

我如何过滤页面有top-navigation然后排序?

回答

2

两个步骤:

  1. 创建的网页包含top-navigation键的数组。

    我们创建一个空数组,然后推送具有密钥的项目。

    {% assign navposts = ''|split:''%} 
    {% for post in site.posts %} 
    {% if post.top-navigation %} 
    {% assign navposts = navposts|push:post%} 
    {% endif %} 
    {% endfor %} 
    
  2. 排序上述阵列由top-navigation.order

    {% assign navposts = navposts|sort: "top-navigation.order"%} 
    

印刷结果:

{% for post in navposts %} 
<br>{{ post.title }} - {{post.top-navigation}} 
{% endfor %} 

对于页面使用site.pages

+0

这很有效。我甚至为我的标签列表添加了一个uniq过滤器。 – user3411192