Получить категории из WordPress Woocommerce

Я пытаюсь получить категории товаров из woocommerce через функцию в моей теме WordPress

function get_me_list_of($atts, $content = null) { $args = array( 'post_type' => 'product', 'posts_per_page' => 10, 'product_cat' => $atts[0]); $loop = new WP_Query( $args ); echo '<h1 class="upp">Style '.$atts[0].'</h1>'; echo "<ul class='mylisting'>"; while ( $loop->have_posts() ) : $loop->the_post(); global $product; echo '<li><a href="'.get_permalink().'">'.get_the_post_thumbnail($loop->post->ID, 'thumbnail').'</a></li>'; echo '<li><a href="'.get_permalink().'">'.$loop->post->post_title.'</a></li>'; echo '<li><a href="">'.get_categories().'</a></li>'; endwhile; echo "</ul>"; wp_reset_query(); } ?> 

Вышеупомянутый код возвращает некоторые продукты, но категории продуктов.

Когда я включил echo '<li><a href="">'.get_categories().'</a></li>'; в коде выше он возвращается как «Массив». Как это исправить?

Что я делаю не так? Как изменить это, чтобы получить категории товаров для woocommerce?

 <?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 ; } } } } ?> 

Это будет отображать все категории верхнего уровня и подкатегории под ними иерархически. не используйте внутренний запрос, если хотите просто отобразить категории верхнего уровня. Стиль, как вам нравится.

Улучшение ответа Suman.hassan95, добавив ссылку на подкатегорию. Замените следующий код:

 $sub_cats = get_categories( $args2 ); if($sub_cats) { foreach($sub_cats as $sub_category) { echo $sub_category->name ; } } 

с:

 $sub_cats = get_categories( $args2 ); if($sub_cats) { foreach($sub_cats as $sub_category) { echo '<br/><a href="'. get_term_link($sub_category->slug, 'product_cat') .'">'. $sub_category->name .'</a>'; } } 

или если вы также пожелаете счетчик для каждой подкатегории, замените на это:

 $sub_cats = get_categories( $args2 ); if($sub_cats) { foreach($sub_cats as $sub_category) { echo '<br/><a href="'. get_term_link($sub_category->slug, 'product_cat') .'">'. $sub_category->name .'</a>'; echo apply_filters( 'woocommerce_subcategory_count_html', ' <span class="cat-count">' . $sub_category->count . '</span>', $category ); } }