Radiant: «Индекс архив месяца»
-
12-10-2019 - |
Вопрос
Я пытаюсь настроить простой блог с 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>