Как сделать несколько разделов в категории "Домашние сообщения" разумными?
Этот вопрос может показаться глупым всем или новичку, но я работаю над темой. Это будет в основном тема публикации новостей.
Прямо сейчас на моей домашней странице все сообщения отображаются одно за другим, как в обычной теме WordPress.
В теме не было реализовано никакого дополнительного кодирования.
Но я хочу сделать разные разделы на домашней странице и назвать каждый раздел своим
Название категории и удаление сообщений из нее категория и покажите их в этом разделе.
Как и другие темы, связанные с новостями, делайте это, создавая блоки на своей домашней странице и показывая сообщения, такие как "последние новости", "горячие прямо сейчас" и т. Д.
Надеюсь, вы поняли, о чем я говорю.
Я читал о пользовательских типах сообщений и сообщениях wp_query, но у меня нет кода, который мне нужен для этого.
Любая помощь будет очень признательна
Безвозмездно
1 answers
Вы можете запустить цикл foreach по всем вашим категориям, а затем выполнить запрос для последних сообщений в каждой категории. Вы можете сделать это, установив для своей домашней страницы статическую страницу, а затем поместив ее в пользовательский шаблон. Это всего лишь простой пример:
$categories = get_the_categories();
foreach ( $categories as $cat ) {
$exclude = isset( $GLOBALS['current_id'] ) ? $GLOBALS['current_id'] : null;
$args = array(
'cat' => $cat->term_id,
'posts_per_page' => 4,
'post__not_in' => array( $exclude ),
'no_found_rows' => true,
);
echo '<h3>'. $cat->name . '</h3>';
$home_q = new WP_Query( $args );
while ( $home_q->have_posts() ) : $home_q->the_post();
$GLOBALS['current_id'] = get_the_ID();
// Do loop stuff here......
endwhile; wp_reset_postdata();
}
$GLOBALS['current_id']
будет содержать массив идентификаторов записей для использования в каждом дополнительном запросе, чтобы предотвратить отображение записи более 1 раза, если она находится в нескольких категориях. Установка значения "no_found_rows" в значение true сделает запрос менее трудоемким, если не получение всех сообщений для разбивки на страницы и прочее.