@TuMko

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

Нужно выводить на странице магазина Woocommerce список категорий вида:
Категория 1
- Подкатегория 1 категории 1
- Подкатегория 2 категории 1
Категория 2
- Подкатегория 1 категории 2
- Подкатегория 2 категории 2
При выборе нужной категории, открывается следующая страница вида:
Подкатегория 1
- Подкатегория 1 подкатегории 1
- Подкатегория 2 подкатегории 1
Подкатегория 2
- Подкатегория 1 подкатегории 2
- Подкатегория 2 подкатегории 2

Такой код выводит список категорий, если же прописать child_of, то в таком случае выводятся абсолютно все подкатегории, т.е. 2, 3... уровней вложенности, а надо выводить только один уровень вложенности.
$parentid = get_queried_object_id();
	$args = array(
	    'parent' => $parentid,
	    'hide_empty' => false
	);
	$terms = get_terms( 'product_cat', $args );
	if ( $terms ) {   
	    echo '<div class="content-container__catalog-list"><ul class="catalog-list">';
	        foreach ( $terms as $term ) {              
	            echo '<li class="catalog-list-block">';                        
	                //woocommerce_subcategory_thumbnail( $term ); 
                    echo '<a href="' .  esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . ' catalog-list-block__title">';
                        echo $term->name;
                    echo '</a>';                                                        
	            echo '</li>';                                                        
	    }
	    echo '</ul></div>';
	}
  • Вопрос задан
  • 2669 просмотров
Пригласить эксперта
Ответы на вопрос 1
it_proger29
@it_proger29
Битрикс
<?php
      $args = array(
        'taxonomy' => 'product_cat',
        'hide_empty' => false,
      );
      $product_categories = get_terms( $args );

      $count = count($product_categories);

      if ( $count > 0 ){
        foreach ( $product_categories as $product_category ) {
            $thumbnail_id = get_woocommerce_term_meta( $product_category->term_id, 'thumbnail_id', true );
            echo '<div class="col-md-6 col-sm-12 col-xs-12">';
            echo '<article class="type-post">';
            echo '<div class="entry-cover" style="width: 388px; height: 295px;">';
            echo  '<a href="' . get_term_link( $product_category ) . '"><img style="background-image: url('.  wp_get_attachment_url( $thumbnail_id ) .')!important;background-size: 100%;background-repeat: no-repeat;background-size: cover; width: 100%; height: 100%;" /></a>';
            echo  '</div>';
            echo  '<div class="entry-block">';
            echo  '<div class="entry-title">';
            echo  '<a href="' . get_term_link( $product_category ) . '" title="' . $product_category->name . '"><h3>' . $product_category->name . '</h3></a>';
            echo  '</div>';
            echo  '<hr>';
            echo  '<div class="entry-content">';
            echo  '<p>' . $product_category->description . '</p>';
            echo  '</div>';
            echo  '</div>';
            echo  '</article>';
            echo  '</div>';
            

        }
      }
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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