@anmkh

Как вывести список категорий Woocommerce с подкатегориями?

Нужно вывести так:
<ul>
   <li><a href="#">Категория</a></li>
   <li><a href="#" class="class_subcategory_item">Категория с подкатегориями</a>
      <ul class="sub-menu">
        <li><a href="#">Категория</a></li>
        <li><a href="#">Категория</a></li>
        <li><a href="#">Категория</a></li>
     </ul>
   </li>
   <li><a href="#">Категория</a></li>
   <li><a href="#">Категория</a></li>
</ul>


То есть дать возможность дать класс тегам li и ul подкатегории
Стандартный цикл не выводит субкатегории..
64083f82e6f0a633989185.png
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 1
Webram
@Webram
Я есть
Такой вопрос гуглится за 3 секунды.
Вот куда надо рыть get_categories() woocommerce.

код со stackoverflow
<?php
  $taxonomy     = 'product_cat';
  $orderby      = 'name';
  $show_count   = 0;      // 1 for yes, 0 for no
  $pad_counts   = 0;      // 1 for yes, 0 for no
  $hierarchical = 1;      // 1 for yes, 0 for no
  $title        = '';
  $empty        = 0;
  $args = array(
         'taxonomy'     => $taxonomy,
         'orderby'      => $orderby,
         'show_count'   => $show_count,
         'pad_counts'   => $pad_counts,
         'hierarchical' => $hierarchical,
         'title_li'     => $title,
         'hide_empty'   => $empty
  );
 $all_categories = get_categories( $args );
 foreach ($all_categories as $cat) {
    if($cat->category_parent == 0) {
        $category_id = $cat->term_id;
        echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>';
        $args2 = array(
                'taxonomy'     => $taxonomy,
                'child_of'     => 0,
                'parent'       => $category_id,
                'orderby'      => $orderby,
                'show_count'   => $show_count,
                'pad_counts'   => $pad_counts,
                'hierarchical' => $hierarchical,
                'title_li'     => $title,
                'hide_empty'   => $empty
        );
        $sub_cats = get_categories( $args2 );
        if($sub_cats) {
            foreach($sub_cats as $sub_category) {
                echo  $sub_category->name ;
            }
        }
    }
}
?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы