Как сделать несколько разделов в категории "Домашние сообщения" разумными?


Этот вопрос может показаться глупым всем или новичку, но я работаю над темой. Это будет в основном тема публикации новостей.

Прямо сейчас на моей домашней странице все сообщения отображаются одно за другим, как в обычной теме WordPress.

В теме не было реализовано никакого дополнительного кодирования.

Но я хочу сделать разные разделы на домашней странице и назвать каждый раздел своим

Название категории и удаление сообщений из нее категория и покажите их в этом разделе.

Как и другие темы, связанные с новостями, делайте это, создавая блоки на своей домашней странице и показывая сообщения, такие как "последние новости", "горячие прямо сейчас" и т. Д.

Надеюсь, вы поняли, о чем я говорю.

Я читал о пользовательских типах сообщений и сообщениях wp_query, но у меня нет кода, который мне нужен для этого.

Любая помощь будет очень признательна

Безвозмездно

Author: Sadi Mahmud, 2012-05-17

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 сделает запрос менее трудоемким, если не получение всех сообщений для разбивки на страницы и прочее.

 0
Author: Chris_O, 2012-05-17 15:55:43