Получить пользовательское поле ACF в медиа - Twig / Timber - PullRequest
0 голосов
/ 21 июня 2019

Я создал галерею с настраиваемым полем ACF «галерея». Но я бы хотел добавить больше настроек на каждую фотографию.

Для этого я создал два пользовательских поля ACF, которые я добавил в Wordpress Medias, чтобы определить размер и положение для каждого изображения. На снимке экрана ниже: выпадающие списки "Taille" и "Position" - мои настраиваемые поля.

В бэк-офисе: «photo_size» - это имя настраиваемого поля для выпадающего списка «Taille» «photo_position» - это имя настраиваемого поля для выпадающего списка «Position»

Мне удается создать свою фотогалерею, но мне не удается получить эти дополнительные настраиваемые поля.

Я пробовал это:

$file = get_field('show_gallery');
$photo_size = get_field('photo_size', $file['ID']);
$context['photo_gallery'] = $photo_size;

Я пытаюсь получить значение 'photo_size', прикрепленное к каждому изображению:

{% for item in photo_gallery %}
    <img src="{{ Image(item).src }}" class="gallery__img {{ item.photo_size }}" alt="{{ Image(item).alt }}">
{% endfor %}

enter image description here

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Является ли $ photo_size массивом? Это не похоже на это. Что вы получите, если вы {{dump (photo_gallery)}}? Или var_dump ($ photo_size) в вашем php-файле? Похоже, что вы должны циклически проходить через поле show_gallery, а не поле photo_size, но трудно сказать, учитывая имена полей и то, что мы не можем видеть настройку вашего поля (некоторый языковой барьер здесь, без сомнения - если бы я мог говорить по-французски, я мог бы наверное, получше идея получше). По сути, нам нужно знать, как настроено это поле show_gallery, тогда я уверен, что оно станет более понятным.

Так что, возможно, у вас должно быть что-то вроде:


$context['photos'] = get_field('show_gallery');

тогда

{% for item in photos %}
    {% set photo_size = function('get_field','photo_size',item.id) %}
    <img src="{{ item.url }}" class="gallery__img {{ photo_size }}" alt="{{ item.alt }}">
{% endfor %}>
0 голосов
/ 21 июня 2019

Спасибо, Дин, за ответ. Хорошо работает с некоторыми исправлениями.

Для тех, кто хочет знать правильный код:

{% for item in post.meta('photos') %}
    {% set photo_size = function('get_field','photo_size',item.id) %}
    <img src="{{ item.url }}" class="gallery__img {{ photo_size }}" alt="{{ item.alt }}">
{% endfor %}>
...