Здравствуйте. Есть задача:
Вывести по одной записи из каждой рубрики, с возможностью принудительного вывода.
Должен быть чекбокс, который переопределит, что выводим не последнюю запись, а какую-то конкретную.
Пока что реализовал следующим образом:
Создал через Advanced Custom Fields пять вкладок, в каждой вкладке чекбокс последняя запись/выбрать запись
и вывожу все это дело вот так:
<?php
$args = array( 'posts_per_page' => 1, 'post_type'=> 'page', 'include' => 127 ); //забираем ту самую страницу, в которой добавлял вкладки
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post );
if( get_field('news_last') ) //если "последняя запись"
{
$args = array( 'posts_per_page' => 1, 'category' => 19 ); // выводим последнюю запись из категории.
$lastposts = get_posts( $args );
foreach($lastposts as $post) : setup_postdata($post);
the_title();
endforeach;
wp_reset_postdata();
}
else // Если какая-то запись выбрана
{
$news_item = get_field('news_item'); //то забираем её и выводим
if( $news_item ):
foreach( $news_item as $post):
setup_postdata($post);
the_title();
endforeach;
wp_reset_postdata();
endif;
}
endforeach;
wp_reset_postdata();
?>
И так 5 раз для пяти категорий. Ужасно, неудобно и куча лишних запросов к бд. Прекрасно понимаю. Потому прошу подсказать более изящное решение для этой задачи. Я думаю что я просто глубоко зарылся и все намного проще :)