質問

Radiant CMSを使用してシンプルなブログを設定しようとしており、「Archive Month Index」に問題があります。私はそれについて説明されているようにそれをセットアップします ウェブログ しかし、私はそれを機能させることができません。

コードは、Video STの男と同じです。これは:

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

...アーカイブインデックスの場合。

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

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

...月のインデックスページの代わりに。体の部分を2回レンダリングする方法を考えられません。

役に立ちましたか?

解決

まったく同じ問題がありました。 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/記事/2011/02/がこの例外をスローすることを意味します。再帰的に自分自身を処理しようとします。

私が使用した解決策はです <r:unless_self></r:unless_self> の結果から処理されているページ(つまり、インデックスページ)をwinnowするタグ <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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top