Запрос нескольких произвольных типов записей в одном цикле
Я знаю, что существует несколько других постов, которые охватывают похожую тему, о которой я собираюсь спросить.
У меня есть три произвольных типа записей, в дополнение к '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(); ?>
Это код, который у меня есть на данный момент, я не уверен, как его модифицировать для извлечения нескольких типов записей из одной категории.
Просто измените часть с post_type
на:
'post_type' => array('testimonial', 'other_post_type', 'another-post-type'),
При условии, что таксономия действительна для всех 3 типов записей. В противном случае вам придётся её опустить.
Почему? Вы можете передать массив в поле post_type
.

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

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

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

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

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

$args = array(
'post_type' => array( 'testimonial', 'post' ),
'posts_per_page' => 1,
);
$query = new WP_Query( $args );
Примечание редактора:
Для запроса нескольких типов записей нужно передать массив array()
с типами записей вместо запроса одного типа.
