facepook
@facepook
С детства болею неизлечимым сео-даром!

Как в Advanced Custom Fields использовать поле «Взаимоотношение»?

Доброго утра!
Я использую плагин Advanced Custom Fields, и прошу подсказать с функцией "Взаимоотношение".

Расскажу по порядку, что имею:
- Я добавил произвольный тип записей, теперь есть Записи (стандартные) и допустим "Города"
- В плагине добавил доп. поле "Взаимоотношение"

Что хочу получить в итоге:
- При выборе нужных "Городов" в записи, они отображаются в записи ссылками, а в записи произвольного типа, отображается, ссылки на записи, в которых их выбрали.

Лучше покажу на примере:

- Вот я в записи указываю "Города":
9edcb3685e9249328dbedba0789812ab.png

- И на странице записи они показываются так:
72b24b8a2a93408786ac7058706c82cc.png

- Делается это кодом:
<?php
$posts = get_field('down-url');
if ($posts) { ?>
    <h3 class="related">Ссылки на "Города"</h3>
    <p>
    <?php foreach($posts as $post) { setup_postdata($post); ?>
        <a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>"><?php the_title(); ?> »</a><br/>
    <?php } //End for each loop
    wp_reset_postdata(); //Restores WP post data ?>
    </p>
    <hr />
<?php } //End if ?>


- Подскажите, как сделать, чтобы в Записи Города, отображались "обратные" ссылки.
Заранее спасибо!
  • Вопрос задан
  • 1441 просмотр
Пригласить эксперта
Ответы на вопрос 1
Punkie
@Punkie
www.advancedcustomfields.com/resources/relationship
Секция "Using WP_Query arguments":
<?php 

// get only first 3 results
$ids = get_field('down-url', false, false);

$query = new WP_Query(array(
	'post_type'      	=> 'conferences',   /// тут ваш тип записи
	'posts_per_page'	=> 1,     // тут указываем сколько постов вывести из relation.
	'post__in'		=> $ids,
	'post_status'		=> 'publish',     // тут лучше сменить на 'publish' - показать только опубликованные посты
	'orderby'        	=> 'rand',     // Тут указываем сортировку. Если убрать эту строку - отсортируются по дате.
));

?>


Таким образом в $query попадут посты, id которых перечислены в $ids. Ну и далее обычным loop'ом выводим где угодно в шаблоне поста:

<?php

if ( $query->have_posts() ) {
	while ( $query->have_posts() ) {
		$query->the_post(); ?>
        <a href="<?php the_permalink();?>"><?php the_title();?></a> 
<?php
	}
} else {
	// тут показываем что-то а-ля "Связанных постов нет" или просто ничего не делаем.
}

// Restore original Post Data
wp_reset_postdata();

?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы