Добрый вечер.
Есть категории и подкатегории и в те и другие товары.
Нужно вывести название категории и если у нее есть подкатегории то вывести и их и потом уже товары из этой подкатегории.
По 5 товаров из каждой категории.
Должно выглядеть так
Категорий
товар товар товар
Категория
Подкатегория
товар товар товар
Подктегория
товар товар товар
Категория
товар товар товар
Вот код который я написал, только не могу засунуть подкаткегории в категории.
$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 = 1;
$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); ?>
<?php foreach ($all_categories as $cat): ?>
<?php if ($cat->category_parent == 0): ?>
<h2 class="products-section__title"><?php echo $cat->name; ?></h2>
<div class="bs-products-loops">
<?php
$products = new WP_Query([
'post_type' => 'product',
'posts_per_page' => 5,
'product_cat' => $cat->slug
]);
?>
<?php if ($products->have_posts()): ?>
<?php while ($products->have_posts()): ?><?php $products->the_post(); ?>
<?php do_action('woocommerce_product_loop_start'); ?>
<?php wc_get_template_part('content', 'product'); ?>
<?php do_action('woocommerce_product_loop_end'); ?>
<?php endwhile; ?><?php wp_reset_postdata(); ?>
<?php endif; ?>
</div>
<?php else: ?>
<?php $category_parent = $cat->category_parent; ?>
<?php
$args2 = array(
'taxonomy' => $taxonomy,
'child_of' => 0,
'parent' => $category_parent,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title,
'hide_empty' => $empty
);
$sub_cats = get_categories($args2); ?>
<?php if ($sub_cats): ?>
<?php foreach ($sub_cats as $sub_category): ?>
<h3><?php echo $sub_category->name; ?></h3>
<div class="bs-products-loops">
<?php
$products = new WP_Query([
'post_type' => 'product',
'posts_per_page' => 5,
'product_cat' => $sub_category->slug
]);
?>
<?php if ($products->have_posts()): ?>
<?php while ($products->have_posts()): ?><?php $products->the_post(); ?>
<?php do_action('woocommerce_product_loop_start'); ?>
<?php wc_get_template_part('content', 'product'); ?>
<?php do_action('woocommerce_product_loop_end'); ?>
<?php endwhile; ?><?php wp_reset_postdata(); ?>
<?php else: ?><?php endif; ?>
</div>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
Подскажите, где я ошибься?
Заранее благодарен.