2017-08-18 7 views
2

私はMasonryテーマを使用していて、コレクションのすべての投稿を表示しようとしています。 Masonryはこれを正常に実行していましたが、以前は動作していましたが、page.collectionはページがあるにもかかわらず空です。私は子供たちがルーティング可能で目に見えるようにしました。私はテーマを再インストールしても役に立たなかった。何か案は?この時点では、コレクションに関連するページロジックに影響するコードは実際には変更されていません。ファイルの先頭に子ページがあるにもかかわらずpage.collection()が空です

は次のとおりです。

{% set collection = page.collection() %} 

私は

{{dump(collection)}} 

を使用しかし、何も現れません。何がありますか?

+1

あなたのページのヘッダーにコレクションを定義しましたか? https://learn.getgrav.org/content/collections#example-collection-definitionを参照してください。 'page.collection()'はあなたのページのヘッダに依存するので、テーマを再インストールするかどうかは違いはありません。問題はあなたのページのコンテンツから来ているようです。 –

+0

@HungTranあなたはそれを正しく指摘してくれてありがとうございます。テーマの最初の作業をしていたときに、何かを見逃してしまったに違いありません。なぜなら、ページヘッダに何かを追加する必要はないからです。 ドキュメントページの例では、コンテンツアイテムに「@ self.children」と表示されています。私はこの質問を投稿してから、コレクション変数をpage.childrenに設定すると、余分なヘッダーコンテンツを追加することなく同じ効果が得られることがわかりました。 – TheCapeGreek

答えて

0

collection()が実際にメソッドである場合は、代わりに、小枝でこれを使用します。

{% set collection = page.collection %} 

は、あなたはそれを試すことができます。私はそれがうまくいくかどうかは確信していませんが、結果を教えてください。

+0

これは、collection()でトップのテーマのデフォルトです。私はpage.collectionもそれ自体で試みました。 HungTranのコメントによれば、適切な解決策は、子供のアイテムをページのヘッダーに含めることでした。しかし、私はそれを必要としない代替手段を見つけました。 – TheCapeGreek

2

代わりにpage.collectionをpage.childrenに変更しました。それは私のページに余分なヘッダーコンテンツを追加することなく同じことを成し遂げます。 HungTranが正しい方法を指摘してくれたことに感謝します。