Как получить записи термина произвольной таксономии
Надеюсь, кто-нибудь поможет мне:
У меня есть Пользовательский Тип Записи (Movie) с его произвольной таксономией (Producer), эта таксономия имеет свои собственные термины, например 'WarnerBros'.
Как я могу получить все записи моего термина (WarnerBros)?
У меня есть этот код, но он пока не работает.
$args = array(
'post_type' => 'movie',
'tax_query' => array(
array(
'taxonomy' => 'producer',
'field' => 'slug',
'terms' => 'WarnerBros',
),
),
);
$query = new WP_Query( $args );
После экспериментов с кодом я решил проблему, поделюсь своим кодом для тех, у кого возникла такая же проблема:
$type = 'Movie'; // Название пользовательского типа записи $tag = 'WarnerBros'; // Ваш термин
$args = array( 'post_type' => $type, 'paged' => $paged, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC', 'tax_query'=>array( array( 'taxonomy'=>'Producer', //Название таксономии 'field'=>'slug', 'terms'=>array($tag) )) );
$loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); if(is_object_in_term($post->ID,'Taxonomy_Name','Your_Term')) // Producer и WarnerBros {
echo '<div id="YourID">'; echo the_title(); echo '</div>';
} endwhile;

На этот конкретный вопрос о WordPress есть разные ответы, которые могут быть полезны:
Отображение всех записей произвольного типа, сгруппированных по произвольной таксономии
Лично я использовал этот метод, который отлично сработал в моем случае:
$terms = get_terms('tax_name');
$posts = array();
foreach ( $terms as $term ) {
$posts[$term->name] = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'post_type', 'tax_name' => $term->name ));
}
Адаптируя под ваш сценарий, это должно работать:
$terms = get_terms('producer');
$posts = array();
foreach ( $terms as $term ) {
$posts[$term->name] = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'movie', 'tax_name' => $term->name ));
}
Теперь вы можете получить свои записи:
print_r($posts["WarnerBros"]);

Попробуйте так
$args = array(
'post_type' => 'movie',
'tax_query' => array(
array(
'taxonomy' => 'producer',
'field' => 'slug',
'terms' => 'WarnerBros',
),
),
);
$query = new WP_Query( $args );
Подробнее смотрите в документации WordPress

Предположим, у вас есть пользовательский тип записи plays, и в рамках таксономии genre вы хотите найти все записи с категорией comedy.
$args = array(
'post_type' => 'plays', /*Тип записи (plays)*/
'tax_query' => array(
array(
'taxonomy' => 'genre', /*Таксономия для поиска (genre)*/
'field' => 'slug',
'terms' => 'comedy', /*Категория для поиска (comedy)*/
),
),
);
$query = new WP_Query( $args );
