Объект записи (Post Object)

Обзор

Поле «Объект записи» создает поле выбора, в котором вы можете выбрать ваши страницы + записи + пользовательские типы записей. Это поле полезно, если нужно предоставить выбрать посты только из определенного типа записей.

Создание объекта записи

Поле объект записи содержит параметры для настройки вашего поля:

ИмяОписание
Фильтрация по типу записейПозволяет выбрать только определенные типы постов и не выводить другие.
Фильтрация по таксономииПозволяет еще больше конкретизировать выборку постов, отметив конкретные таксономии / категории.
Выбрать несколько значений?

Выбрав эту опцию появиться возможность выбирать несколько постов.

Если настройка выбрана, то API будет возвращать массив вместо одного значения.

Разрешить пустое значение?Если выбрано, то в начале списка select появится пустое значение NULL

Использование в шаблоне

API возвратит либо один объект записи (API использует get_post), либо массив объектов записи (API использует get_posts).

Посмотреть данные (для дебага)

echo '<pre>';
    print_r( get_field('post_objects')  );
echo '</pre>';
die;

Вывести данные для единичного значения

<?php

$post_object = get_field('post_object');

if( $post_object ): 

	// перезаписать $post
	$post = $post_object;
	setup_postdata( $post ); 

	?>
    <div>
    	<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    	<span>Объект записи произвольного поля: <?php the_field('field_name'); ?></span>
    </div>
    <?php wp_reset_postdata(); // ВАЖНО - сбросьте значение $post object чтобы избежать ошибок в дальнейшем коде ?>
<?php endif; ?>

Вывести данные для множественных значений

<?php

$post_objects = get_field('post_objects');

if( $post_objects ): ?>
    <ul>
    <?php foreach( $post_objects as $post): // Переменная должна быть названа обязательно $post (IMPORTANT) ?>
        <?php setup_postdata($post); ?>
        <li>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            <span>Объект записи произвольного поля: <?php the_field('field_name'); ?></span>
        </li>
    <?php endforeach; ?>
    </ul>
    <?php wp_reset_postdata(); // ВАЖНО - сбросьте значение $post object чтобы избежать ошибок в дальнейшем коде ?>
<?php endif;

?>
<?php

$post_objects = get_field('post_objects');

if( $post_objects ): ?>
    <ul>
    <?php foreach( $post_objects as $post_object): ?>
        <li>
            <a href="<?php echo get_permalink($post_object->ID); ?>"><?php echo get_the_title($post_object->ID); ?></a>
            <span>Объект записи произвольного поля: <?php the_field('field_name', $post_object->ID); ?></span>
        </li>
    <?php endforeach; ?>
    </ul>
<?php endif;?>