Перебор выбранных страниц в поле связи

#hugo #netlify-cms

#hugo #netlify-cms

Вопрос:

У меня есть поле связи в netlify-cms, которое распечатывает мои несколько выбранных связанных страниц. Я изо всех сил пытаюсь заставить hugo пройти цикл и получить заголовок с каждой страницы, используя комбинацию range / getPage.

Мой сломанный пример:

 {{ range .Params.chassis.availableChassis }}
{{ with .Site.GetPage "/chassis/" . }}<h1>{{ .Title }}</h1>{{ end }}
{{ end }}
  

Содержимое страницы:

 chassis:
  availableChassis:
    - Nissan
    - Renault
  

Настройка поля NetlifyCMS:

 - {label: "Chassis", name: chassis, widget: object, fields: [
    {label: "Available chassis", name: "availableChassis", widget: "relation", collection: "chassis", searchFields: "title", valueField: "title", required: false, multiple: true}
  ]}
  

Если я сделаю это, я получу заголовок страницы со страницы, но, очевидно, он не динамичен в зависимости от выбора CMS:

 {{ with .Site.GetPage "/chassis/nissan" }}<h1>{{ .Title }}</h1>{{ end }}
  

Возможно, более простое решение, о котором я не подумал, или я не ищу в нужном месте в документах.

Ответ №1:

Создал решение с использованием getPage, открытое для альтернативных или менее сложных решений

 {{ $chassis := .Params.chassis.availableChassis }}
{{ range where .Site.Pages "Type" "chassis" }}
    {{ $page := . }}
    {{ range $chassis }}
        {{ if in $page.Title . }}
            {{ with $.GetPage $page.File.Path }}
                {{ .Params.hero.heroTitle }}
            {{ end }}
        {{ end }}
    {{ end }}
{{ end }}