我试图建立一个带有Radiant CM的简单博客,并在“存档月索引”上遇到问题。我将其设置为所描述的 博客 但是我只是无法工作。

该代码与视频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.

...而不是本月的索引页面。我只是想不出我是如何渲染身体两次的。

有帮助吗?

解决方案

我遇到了完全相同的问题。 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日创建的,则URL/articles/2011/02/将抛出此例外,因为正在处理索引页面以生成一个页面,并带有一份来自2011年2月的文章列表将递归尝试处理自身。

我最终使用的解决方案是 <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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top