我正在使用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和标题呢?
答案 0 :(得分:1)
您将数据附加到$ context ['photos']上,因此我认为您应该更改代码以检查if photos
并迭代为for p in photos