Использование поля ACF Relationship Options для заказа сообщений древесины - PullRequest
0 голосов
/ 12 марта 2019

Я создаю страницу параметров, чтобы я мог заказать записи в пользовательском типе сообщения.По какой-то причине я могу просмотреть выбранные записи (элементы отображаются в DOM), но я не могу получить от них данные - название, ссылку, изображение и т. Д.

$context['service_options'] = get_field('service_pages', 'options');
Timber::render( $templates, $context );


{% for post in service_options %}
{{post.id}} {{ post.title }}
<a class="service-card grid-item" href="{{post.link}}" >
    <div class="image-wrapper">
    <h2>{{post.title}}</h2>
    <img src="{{ Image(post.meta('listing_image')).src }}">
    <div class="overlay">
    </div>
    </div>
</a>
{% endfor %}

1 Ответ

0 голосов
/ 12 марта 2019

Я беру предположение и говорю, что ваше поле service_pages является полями отношений ACF. В полевых настройках вы можете указать ACF возвращать идентификаторы записей или полные объекты записей. Когда вы возвращаете объекты post, объекты будут экземплярами WP_Post, но вам понадобятся экземпляры Timber\Post для работы всех функций. Вот как вы можете это настроить.

В PHP :

$service_options = get_field( 'service_pages', 'options' );

$service_options = array_map( function( $page ) {
    // Convert whatever $page is to a Timber\Post.
    return new Timber\Post( $page );
}, $service_options );

$context['service_options'] = $service_options;

Timber::render( $templates, $context );

В Twig , это может быть даже проще:

{% for post in Post(service_options) %}
    {{post.id}} {{ post.title }}
    {# ... #}
{% endfor %}

Здесь функция Post() преобразует все, что находится в массиве service_options, в Timber Posts.

Для заказа постов для пользовательского типа поста - вместо использования отдельного поля отношения - вы также можете использовать один из следующих плагинов для непосредственного заказа постов в представлении списка постов:

...