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

18 июн. 2013 г., 16:41:28
Просмотры: 60.2K
Голосов: 24

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

У меня есть три произвольных типа записей, в дополнение к 'posts'. Я хочу создать цикл, который выводит все записи, относящиеся к определенной категории.

<?php
          $args = array(
    'post_type' => 'testimonial', // тип записи - отзывы
    'posts_per_page' => 1, // количество записей на странице
    'tax_query' => array(
        array ( 
                'taxonomy' => 'testimonial_category', // таксономия категории отзывов
                'field' => 'slug',
                'terms' => 'home' // слаг категории
    )
)
);
$query = new WP_Query( $args );
                $postcount = 0;
            ?>
            <?php if ($query->have_posts()) : ?>
                <?php while ($query->have_posts()) : $query->the_post(); ?>
                    <?php $postcount++; ?>
//цикл здесь
<?php wp_reset_query(); ?>   

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

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

Просто измените часть с post_type на:

'post_type' => array('testimonial', 'other_post_type', 'another-post-type'),

При условии, что таксономия действительна для всех 3 типов записей. В противном случае вам придётся её опустить.

Почему? Вы можете передать массив в поле post_type.

18 июн. 2013 г. 16:46:57
Комментарии

Как указать, в каком имени категории нужно искать. 'taxonomy' => 'testimonial_category'

dannyw24 dannyw24
18 июн. 2013 г. 16:49:36

@user2478101 : ^^ Ваш tax_query в вопросе выглядит корректно, хотя я его не тестировал. Что вы пытаетесь сделать по-другому?

s_ha_dum s_ha_dum
18 июн. 2013 г. 16:57:50

У меня есть таксономия в каждом типе записи с термином home. Я хочу вывести любую запись, у которой он выбран

dannyw24 dannyw24
18 июн. 2013 г. 17:00:55

Я рискнул и попробовал это, но похоже, что другие записи из пользовательских типов записей не подтягиваются. query_posts( array( 'post_type' => array('post', 'testimonial', 'casestudy'), 'cat' => 69, 'showposts' => 3 ) );

dannyw24 dannyw24
18 июн. 2013 г. 17:16:32

Чтобы это работало, таксономия должна быть одинаковой для всех. Насколько я знаю, термины не могут быть связаны между разными таксономиями. http://core.trac.wordpress.org/ticket/12269

GhostToast GhostToast
18 июн. 2013 г. 17:17:42

Как я могу сделать таксономию одинаковой во всей WordPress?

dannyw24 dannyw24
18 июн. 2013 г. 17:20:22

зарегистрировать одну и ту же таксономию для нескольких типов записей. использовать одинаковое имя/слаг и т.д. "my_one_taxonomy", а затем зарегистрировать её для всех типов записей.

GhostToast GhostToast
18 июн. 2013 г. 17:30:53
Показать остальные 2 комментариев
1
$args = array(
    'post_type'      => array( 'testimonial', 'post' ),
    'posts_per_page' => 1,
);
$query = new WP_Query( $args );

Примечание редактора: Для запроса нескольких типов записей нужно передать массив array() с типами записей вместо запроса одного типа.

1 мая 2020 г. 03:53:21
Комментарии

Самундар, не мог бы ты немного пояснить, как твой ответ решает проблему? Иногда пользователи, задающие вопросы, уже потратили часы на попытки что-то решить, и просто получить фрагмент кода может быть непонятно.

Tony Djukic Tony Djukic
1 мая 2020 г. 06:01:41