У WordPress есть такая особенность, что записи из дочерней рубрики отображаются и в родительской, даже если они не прикреплены к родительской. Но такой подход не всегда нужен, так как в некоторых случаях нужно именно вывести в родительской, а не в "общем списке". Т.е нужно создать некий структурированный каталог записей, где записи из дочерних рубрик не попадают в родительскую.
Для этого есть небольшой код, который решит задачу. Этот код нужно вставить например в function.php
add_action( 'pre_get_posts', function( $query ) {
if ( $query->is_main_query() && !is_admin() && $query->is_category() ) {
$query->set( 'category__in', array( get_queried_object_id() ) );
}
});
Или вариант в другой форме записи (больше подходит для изучения работы кода)
function modify_category_query($query) {
if (is_admin() || !$query->is_main_query())
return;
if ($query->is_category()) {
$category = get_queried_object();
$query->set('category__in', array($category->term_id));
}
}
add_action('pre_get_posts', 'modify_category_query');
