2017-08-09 43 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