ACF Post Object в Timber не отображается на шаблоне страницы - PullRequest
0 голосов
/ 25 мая 2019

Данные не отображаются на шаблоне страницы с помощью 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 %}

Нет сообщения об ошибке. Просто нет данных.

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Вы делаете это неправильно, поддержка 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>
0 голосов
/ 31 мая 2019

Если 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);

Надеюсь, это поможет.

...