Как вывести записи из нескольких типов записей в одном цикле и отобразить их отдельно на одном шаблоне?

14 февр. 2017 г., 16:02:59
Просмотры: 13.8K
Голосов: 1

У меня есть четыре типа записей:

  1. Товары
  2. Баннеры
  3. Портфолио
  4. Отзывы

Все они должны отображать свои записи на одной главной странице (index.php).

Сейчас использую следующий запрос для получения записей разных типов:

<?php
query_posts(
    array(
        'post_type' => 'work_projects',
        'work_type' => 'website_development',
        'posts_per_page' => 100
    )
);
if ( have_posts() ) : while ( have_posts() ) : the_post();

    the_post_thumbnail($size);
    the_title();
    the_content();

endwhile; endif;

Но моя проблема в том, что мне нужно разместить несколько циклов query_post на одной странице. Я искал решения в Google и находил ответы здесь на Stack Overflow, но не могу понять, как использовать их с функциями the_title(), the_content() и the_post_thumbnail().

0
Все ответы на вопрос 2
0

post_type принимает массив. Пробовали ли вы использовать WP_Query с массивом?

$args = array( 
         'post_type' => array( 'product', 'banner', 'portfolio', 'testimonial'),
         'post_status' => 'publish',
         'posts_per_page' => 100
    );
    $the_query = new WP_Query( $args );
14 февр. 2017 г. 18:08:16
0

Лучшей практикой будет использование четырех отдельных пользовательских запросов и перебор каждого из них по отдельности с помощью wp_query.

Вот пример:

<?php
$custom_query = new WP_Query( 
    array(
        'post_type' => 'work_projects', 
        'work_type' => 'website_development', 
        'posts_per_page' => 100
    ) 
);
if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post();

    the_post_thumbnail($size);
    the_title();
    the_content();

endwhile; endif; wp_reset_query();
?>

Затем вы повторяете этот процесс для каждого типа записей, заменяя 'work_projects' на название следующего типа записей.

Я не уверен, что означает 'work_type' в данном случае, но просто оставил его в запросе, так как он уже был там.

14 февр. 2017 г. 16:30:16