在媒体-Twig / Timber

时间:2019-06-20 23:14:54

标签: wordpress twig advanced-custom-fields 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 %}

enter image description here

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

谢谢教务长的回答。进行一些更正后,效果很好。

对于那些想知道正确代码的人:

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