Для того, что бы отобразить подкатегории текущей категории, а также, что бы отобразить родительские категории на странице архива и станицы таксономии, воспользуйтесь этим решением:
В файл function.php добавляем функцию:
if ( ! function_exists( 'fixcode_post_categories' ) ) {
/**
* Функция вывод подкатегорий во всех типах записей
*/
function fixcode_post_categories() {
global $wp_query;
//Получаем название таксномии. Так как в разных местах
//Получать по-разному, делаем это дважды.
//Если нужно только для конкретной таксономии, просто
//установите значение $taxonomy = 'my_tax'; вместо кода ниже
$tax_1 = $wp_query->queried_object->taxonomies['0'];
$tax_2 = $wp_query->query_vars['taxonomy'];
if ($tax_1) {
$taxonomy = $tax_1;
} else {
$taxonomy = $tax_2;
}
//Получаем ID категории, что бы получать её вложенные. Если ID пустой, то будем получать родительские категории.
$term_id = get_queried_object()->term_id;
if ($term_id) {
$parent = '';
} else {
$parent = 0;
}
//Получаем список категорий
$categories = get_terms($taxonomy, [
'hide_empty' => false,
'child_of'=> $term_id,
'parent' => $parent
] );
//Выводим список категорий
echo '<div class="row">';
foreach ($categories as $category) {
echo '<div class="col-md-3">';
echo '<div class="item-category">';
echo '<div class="category-name"><a href="'.get_term_link($category->term_id).'">'.$category->name.'</a></div>';
echo '</div>';
echo '</div>';
}
echo '</div>';
}
}
//Добавляем вывод для экшена categories
add_action( 'categories','fixcode_post_categories', 10 );
Теперь, в нужном месте вашего шаблона просто добавьте:
<?do_action( 'categories' );?>
И на этом всё, подкатегории должны выводиться. А там уже адаптируйте под свои задачи внешний вид и вывод, код простой для понимания.