vladislavkalnaus
@vladislavkalnaus
Интернет предприниматель

Как исправить вывод категорий и подкатегорий wordpress (woocommerce)?

Подскажите... Есть код для вывода категорий продуктции и возможность вывода подкатегорий. Суть в том что в блок родительской категории код подставляет только 1 подкатегорию, а остальное выводит вне родительской. Как это исправить ?
$taxonomy     = 'product_cat';
  $orderby      = 'name';  
  $show_count   = 0;      // 1 for yes, 0 for no
  $pad_counts   = 0;      // 1 for yes, 0 for no
  $hierarchical = 3;      // 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 '<li><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 '<ul><li><a class="submenu" href="'.  get_term_link($sub_category->slug, 'product_cat') .'"">' . $sub_category->name . '</a></li></ul></li>';
            }   
        }
    }       
}
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ommunist
Делаю и поддерживаю мультиязычные сайты
Попробуйте переформулировать вопрос от "это" и написать "мне нужно чтобы работало "вот так". Пока что неясно чего вы желаете добиться и что именно вас не устраивает.

У вас первый набор аргументов используется при сборе вообще всех категорий в кучу там где они вызываются. А надо вызывать только категории, которые являются родительскими.

Только Parents вызываются вот так:
$categories = get_terms( 
   'category', 
   array('parent' => 0)
);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы