在媒体中获取 ACF 自定义字段 - Twig/Timber

Get ACF custom field in media - Twig/Timber

我用 ACF 自定义字段创建了一个画廊 "gallery"。但我想在每张照片上添加更多设置。

为此,我创建了两个 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 %}

$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 %}>

谢谢院长的回答。它与一些更正效果很好。

想知道正确代码的人是:

{% 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 %}>