Вывод произвольного типа записей в категории
Есть сайт на WordPress. Создала произвольный тип записи и к нему таксономию. Создала новые записи, раскинула их по категориям, но когда захожу в категории, вижу что во всех категориях отображаются сразу все записи. Записи не разбиваются на категории. Подскажите, что не так в коде. Вот код из файла категории (taxonomy-courses_cat.php):
<?php
// задаем нужные нам критерии выборки данных из БД
$args = array(
'post_type' => 'courses',
'order' => 'ASC',
'orderby' => 'menu_order'
);
$query = new WP_Query( $args );
// Цикл
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();?>
<div class="cours_cat_main">
<div class="cours_cat_title">
<div class="cours_cat_title_text"><?php the_title(); ?></div>
</div>
</div>
<?php
}
} else {
// Постов не найдено
}
// Возвращаем оригинальные данные поста. Сбрасываем $post.
wp_reset_postdata();
?>
Ответы (1 шт):
Вы создаете новый запрос на странице, перекрывая им запрос по умолчанию для данной страницы. В вашем случае либо измените запрос на странице, добавив к нему параметр выбора по категории
//Получаем объект текущей категории курсов
$term = get_queried_object();
$args = array(
'post_type' => 'courses',
'order' => 'ASC',
'orderby' => 'menu_order',
'courses_cat' => $term->name
);
$query = new WP_Query( $args );
Либо удалите вообще запрос со страницы, но если Вам нужно изменить (например сортировку) его используйте pre_get_posts(). И данный вариант правильный.