Вопрос

Я пытаюсь настроить простой блог с Radiant CMS и у меня возникает проблема с «индексом месяца архив». Я настроил его, как это описано на этом блог Но я просто не могу заставить его работать.

Код такой же, как и парень в видео. Его:

<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>.

Это означает, что если страница индекса и первый пост были созданы 02 февраля 2011 года, то URL/статьи/2011/02/выбросит это исключение, потому что страница индекса обрабатывается для создания страницы со списком статей от февраля 2011 года. рекурсивно попытается обработать себя.

Раствор, который я использовал, - это <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