WP посты из произвольного поля
Вывести записи оказалось не так просто, тем более из определенной рубрики, которую редактор сайта выбрал в произвольном поле. Потратил часа 2 времени на то, чтобы хоть быдлокодом, но вытащить то, что мне нужно, в том виде, в котором я хотел:
<?php $term = get_queried_object();
$catid = (int) get_field('proizvolnoe_pole', $term); ?>
<?php $posts = $catid > 0 ? get_posts ("category=$catid&orderby=date&numberposts=10") : []; ?>
<?php if ($posts) : ?> <?php foreach ($posts as $post) : setup_postdata ($post); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endforeach; wp_reset_postdata(); endif; ?>
Здесь используется плагин Advanced Custom Fields (ACF). $term = get_queried_object() задаёт текущую запись, страницу или рубрику, на которой хранится поле. Поле должно возвращать один ID рубрики; если рубрика не выбрана, список остаётся пустым.
$catid - переменная, в которую сохраняем значение произвольного поля, в настройках произвольного поля стоит возвращать не объект, а id.
get_field - функция, возвращающая значение поля.
proizvolnoe_pole - имя произвольного поля.
category=$catid - Подставляем переменную $catid, для вывода записей из заданной рубрики в произвольном поле.
orderby=date - Порядок вывода записей по новизне.
numberposts=10 - Выводить не более 10 записей.
