WP Вывод категорий и подкатегорий

Есть таксономия с категориями которая выглядит подобным образом. введите сюда описание изображения где Кухни и Шкафы - родительские категории, а остальное - подкатегории. Как совершить вывод только родительских категорий ? А так же каким образом потом вывести подкатегории после перехода по категории. Пытался выводить и оно просто выводит всё сразу.

Есть post_type = 'furniture'. У него taxonomy = 'category'.

На главной странице есть вывод категорий.

<?php
$cats = get_terms([
                  'taxonomy'   => 'category',
                  'hide_empty' => false,
                  'parent' => 0,
              ]);
          foreach ($cats as $cat) :   
?>
  <a href="<?php echo get_term_link($cat->term_id, 'category') ?>">
<?php endforeach; ?>

ссылка выглядит как /category/term-id/ При клике происходит переход на category.php шаблон. В нём пытаюсь выводить подкатегории

 $cats = get_terms( [
              'taxonomy' => 'category',
              'parent' => get_queried_object_id();,

         ] );

Если пытаться ставить parent => 0 - оно выводит только 'Кухни'


Ответы (2 шт):

Автор решения: WP Punk

Для получения всех родительских категорий нужно подставить parent = 0 в запросы.

Самый простой способ это использовать шорткод product_categories:

echo do_shortcode( '[product_categories parent=0]' );

Чтобы получить все категории используйте get_terms

$product_cats = get_terms( [
    'taxonomy' => 'product_cat',
    'parent'   => 0
] );

Чтобы получит подкатегории конкретной категории вместо parent нужно подставить get_queried_object_id().

echo do_shortcode( '[product_categories parent=' . get_queried_object_id() . ']' );
$product_cats = get_terms( [
    'taxonomy' => 'product_cat',
    'parent'   => get_queried_object_id()
] );
→ Ссылка
Автор решения: 4rmr3d1

Решил свою проблему. Вывод дочерних категорий.

 <?php
            $taxonomy = 'category';
            $term = get_queried_object();

            $children = get_terms( 
              $term->taxonomy, array(
                'parent' => $term->term_id,
                'hide_empty' => false
              )
            );
            print_r ($term);

            foreach ($children as $subcat) :   

?>

          <span><?php echo $subcat -> name ?></span>

          <?php endforeach; ?>

→ Ссылка