Для этого сайта Hugo у меня есть два раздела в папке «контент», «сообщения» и «проекты», каждый со своими страницами. Страницы site.com/projects/
и site.com/posts/
правильно отображают соответствующий контент. На моей домашней странице я хотел бы отобразить некоторые записи из обоих разделов. Вот layouts/index.html
:
{{ define "main" }}
<div class = "homepage-content">
{{ .Content }}
</div>
<h1>Blog Posts:</h1>
<div class = "articles">
{{ $post_pages := where (where site.Pages "Type" "in" "posts") "Params.hidden" "! = " true }}
{{ range (.Paginate $post_pages).Pages }}
{{ partial "post-summary.html" . }}
{{ end }}
</div>
<h1>Projects:</h1>
<div class = "articles">
{{ $project_pages := where (where site.Pages "Type" "in" "projects") "Params.hidden" "! = " true }}
{{ range (.Paginate $project_pages).Pages }}
{{ partial "post-summary.html" . }}
{{ end }}
</div>
{{ partial "pagination.html" . }}
{{ end }}
Что происходит, так это то, что оба блока кода в конечном итоге отображают список страниц из раздела «сообщения», и если я изменю порядок (сначала разместив блок кода для раздела «проекты»), они оба отображают страницы из раздела «проекты». " раздел. Кажется, что происходит что-то вроде скрытой переменной, которая не сбрасывается между блоками кода. Просматривая документы Хьюго около часа, я не мог найти причину. Я уже указал оба раздела в разделе «mainSections» в файле параметров, если это имеет значение (хотя я не думаю, что это имеет значение)
Для справки, я использую тему anubis в качестве основы (хотя она была несколько сильно изменена), но опять же, я не думаю, что это связано.
Добрый участник форума Hugo ответил на мой вопрос: https://discourse.gohugo.io/t/list-is-displaying-content-from-the-wrong-section/41255
Я сделал две ошибки. Я пролистнул дважды, что не работает. Я также использовал .Pages
вместо .RegularPages
, что не рекомендуется (см. здесь).
Пользователь jmooring
предоставил следующие два варианта того, как я мог сделать то, что пытался: