0

Radiant CMSを使用して簡単なブログを設定しようとしていますが、「アーカイブ月間インデックス」に問題があります。このブログで説明されているように設定しましたが、動作させることができません。

コードは、ビデオstが使用している人と同じです。これは:

<r:archive:children:each>
  <div class="blog-post">
    <h3><r:link /></h3>
    <p>
      <r:content />
    </p>
  </div>
</r:archive:children:each>

...アーカイブインデックス用。

しかし、私がpost / 2010/12サイト(または他の日付)に行くとき、私はそれを驚くべきものにします

StandardTags::TagError in SiteController#show_page
Recursion error: already rendering the `body' part.

...その月のインデックスページの代わりに。体の部分を2回レンダリングする方法が思い浮かびません。

4

1 に答える 1

0

私はまったく同じ問題を抱えていました。Radiantのインストーラーによって作成されたデフォルトのブログ設定も同様です。

Radiantのブログページは次のようになります。

+ Articles (Archive)
  |
  +- %B %Y Archives (Archive Month Index)
  |
  +- First Post
  | 
  +- Second Post
  |  
  +- Third Post

記事ページの下にあるものはすべて、によって返される結果に含まれているよう<r:archive:children:each></r:archive:children:each>です。

つまり、インデックスページと最初の投稿が2011年2月2日に作成された場合、インデックスページが処理されて2011年2月の記事のリストを含むページが生成されるため、URL / articles /2011/02/はこの例外をスローします。再帰的に自分自身を処理しようとします。

私が使用した解決策は<r:unless_self></r:unless_self>、の結果から処理中のページ(つまりインデックスページ)を選別するためのタグです<r:archive:children:each></r:archive:children:each>

インデックスページのクラッシュしないページパーツの例bodyは、次のようになります。

<r:archive:children:each order="desc">
  <r:unless_self>
    <div class="entry">
      <h3><r:link /></h3>
      <r:content />
    </div>
  </r:unless_self>
</r:archive:children:each>
于 2011-02-14T22:30:27.470 に答える