使用ACF Post Object并使用Timber调用它时,数据不会显示在页面模板上。
试图将数据添加到index.php和news.php模板中。
ACF发布对象字段名称:
news_author_data
news.php
$post = new TimberPost();
$context['post'] = $post;
$context['news_author'] = new
TimberPost(get_field('news_author_data'));
Timber::render('core/news.twig', $context);
news.twig
{% for news in news_author %}
test
{% endfor %}
无错误信息。只是没有数据。
答案 0 :(得分:0)
如果get_field('news_author_data')
返回一个post对象数组,则不能将集合直接放入“ new TimberPost”构造函数中。您必须像这样遍历它们:
$post = new TimberPost();
$context['post'] = $post;
$context['news_author'] = array_map(function($post) {
return new TimberPost($post);
}, get_field('news_author_data'));
Timber::render('core/news.twig', $context);
希望这会有所帮助。
答案 1 :(得分:0)
您使用的是错误的方法,根据此处的文档,对ACF的支持已包含在Timber中:
[https://timber.github.io/docs/guides/acf-cookbook/]
假设这是一个转发器字段,只需将其添加到news.twig文件中
<div class="my-list">
{% for item in post.meta('news_author_data') %}
<div class="item">
<h4>{{ item.my_repeater_field }}</h4>
<h6>{{ item.my_repeater_field }}</h6>
<img src="{{ Image(item.picture).src }}" />
</div>
{% endfor %}
</div>