将ACF画廊与Timber / Twig一起使用

时间:2018-06-24 00:58:40

标签: twig advanced-custom-fields timber

我正在使用Timber(Twig的WordPress插件实现)和“高级自定义字段”插件库字段。我在自定义帖子类型下有一个工作库,因此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;
}

默认情况下,我在主题的template / 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和标题呢?

1 个答案:

答案 0 :(得分:1)

您将数据附加到$ context ['photos']上,因此我认为您应该更改代码以检查if photos并迭代为for p in photos