while ( $_posts->have_posts() ) : $_posts->the_post();
get_template_part( 'works-item' );
endwhile;
wp_reset_postdata();
<?php
// Получаем текущий запрошенный объект
// @see https://codex.wordpress.org/Function_Reference/get_queried_object
$term = get_queried_object();
// Устанавливаем по умолчанию неактивный tax_query
$tax_query = false;
// Если это термин таксономии, формируем tax_query
if ( $term instanceof WP_Term ) {
$tax_query = array(
array(
'taxonomy' => 'category', // или вашу таксономию
'field' => 'slug',
'terms' => $term->slug,
),
);
}
// Запускаем запрос, tax_query будет выполнен только если он реально установлен (то есть, запрошен термин таксономии)
$_posts = new WP_Query( array(
'post_type' => 'works',
'posts_per_page' => 10,
'tax_query' => $tax_query,
) );
// А тут уже цикл вывода
...