Я использую Timber (реализация Twig для плагинов WordPress) и поле галереи плагинов Advanced Custom Fields.У меня есть рабочая галерея с пользовательским типом поста, поэтому ACF и Timber работают где-то на сайте, но не для стандартной страницы.Когда я пытаюсь добавить галерею на страницу, все, что у меня получается, это пустая разметка для тега img src
.
У меня есть это в page.php в папке с шаблонами:
$context = Timber::get_context();
$page = new TimberPost();
$context['page'] = $page;
if ($photos = $page->get_field('photos')) {
$context['photos'] = $photos;
}
У меня есть это в default.twig в папке templates / page / в теме (html удален для простоты):
{% if page.photos %}
{% for p in page.photos %}
<img src="{{ p.sizes.gallery|relative }}" alt="{{ p.alt }}" />
{{ p.caption }}
{% endfor %}
{% endif %}
Это приводит к источнику страницы <img src="" alt="">
.
Если я использую {{ dump(photos) }}
внутри оператора for p in page.photos
, он выводит массив изображений, которые я ввел в поле Галерея на серверной части.Итак, массив изображений существует и выводится.Расширение relative
работает для всех типов записей;удаление здесь не имеет значения.
Так почему же функция p.sizes.gallery|relative
не выводит URL и заголовок каждого изображения?