Родственные связи (Relationship)

Описание

Поле «Родственные связи» создает компонент с двумя столбцами для выбора одной или нескольких записей, страниц или пользовательского типа записей. Этот тип поля помогает найти посты и соответствующие таксономии.

Скриншоты

Поле "Родственные связи" создает компонент с двумя столбцами для выбора одной или нескольких записей, страниц или пользовательского типа записей.

Настройки

  • Фильтрация по типу записей. Фильтрует выбираемые результаты по одному или нескольким типам записи. Если оставить пустым, будут показаны все типы записей. Поскольку результаты группируются по типу записи, выбранные здесь типы записей могут располагаться в определенном порядке.
  • Фильтрация по таксономии. Фильтрует выбираемые результаты по одному или нескольким терминам таксономии.
  • Фильтры. Указывает, какие фильтры отображаются в компоненте. Доступны: «Поиск», «Тип записи» и «Таксономия».
  • Элементы. Указывает, какие элементы должны отображаться для каждого результата. 
  • Минимальное количество записей. Если записей меньше, то показываться не будет.
  • Максимальное количество записей. Устанавливает ограничение на количество выводимых записей.
  • Возвращаемый формат. Задает формат возвращаемого значения. Доступны Объект записи (WP_Post) и ID записи (integer).

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

Поле «Родственные связи » вернет массив элементов, где каждый элемент является либо объектом WP_Post, либо целочисленным значением в зависимости от установленного формата возврата.

Показать список записей (с использованием setup_postdata)

В этом примере показано, как перебрать значение Post Object и отобразить список интерактивных ссылок. Здесь мы используем специальную функцию с именем setup_postdata(), чтобы разрешить использование функций WordPress для данной записи. Поле в этом примере использует Объект записи в качестве возвращаемого формата и является мультивыбором.

<?php
$featured_posts = get_field('featured_posts');
if( $featured_posts ): ?>
    <ul>
    <?php foreach( $featured_posts as $post ): 

        // Добавляем поддержку WP функций для данного поста (переменная должна называться $post).
        setup_postdata($post); ?>
        <li>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            <span>A custom field from this post: <?php the_field( 'field_name' ); ?></span>
        </li>
    <?php endforeach; ?>
    </ul>
    <?php 
    // Сбрасываем глобальный объект постаъов, чтобы остальная часть страницы работала правильно.
    wp_reset_postdata(); ?>
<?php endif; ?>

Показать список постов (без setup_postdata)

В этом примере показано, как перебрать значение Объекта записи и отобразить список интерактивных ссылок. Здесь мы не используем setup_postdata поэтому нам вручную надо передать id нужной записи. Поле в этом примере использует Объект записи в качестве возвращаемого формата и является мультивыбором.

<?php
$featured_posts = get_field('featured_posts');
if( $featured_posts ): ?>
    <ul>
    <?php foreach( $featured_posts as $featured_post ): 
        $permalink = get_permalink( $featured_post->ID );
        $title = get_the_title( $featured_post->ID );
        $custom_field = get_field( 'field_name', $featured_post->ID );
        ?>
        <li>
            <a href="<?php echo esc_url( $permalink ); ?>"><?php echo esc_html( $title ); ?></a>
            <span>Пользовательское поле для текущей записи: <?php echo esc_html( $custom_field ); ?></span>
        </li>
    <?php endforeach; ?>
    </ul>
<?php endif; ?>