Обзор
Поле «Объект записи» создает поле выбора, в котором вы можете выбрать ваши страницы + записи + пользовательские типы записей. Это поле полезно, если нужно предоставить выбрать посты только из определенного типа записей.
Создание объекта записи
Поле объект записи содержит параметры для настройки вашего поля:
Имя | Описание |
---|---|
Фильтрация по типу записей | Позволяет выбрать только определенные типы постов и не выводить другие. |
Фильтрация по таксономии | Позволяет еще больше конкретизировать выборку постов, отметив конкретные таксономии / категории. |
Выбрать несколько значений? | Выбрав эту опцию появиться возможность выбирать несколько постов. Если настройка выбрана, то 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;
?>