WooCommerce вывести подкатегории в категориях

0 из 5, голосов: 0
36
Я установил свою простую и легкую тему WordPress.

В WooCommerce никак не выводились подкатегории в категориях - выводился только список товаров.

Настройка через админку никак не изменила ситуацию (Внешний вид - Настроить - WooCommerce - Каталог товаров - Отображение категории - Отображать подкатегории и товары).

Т.к. тема моя, она очень простая и в ней не было функции вывода подкатегорий в категориях для WooCommerce.
Нашел у доброго человека код: disweb.ru. Немного упростил.

Решение: для отображения подкатегорий в категориях необходимо в файл шаблона functions.php добавить код:

function print_shop_product_subcategories($args = [])
{

if (empty($_GET['product-page'])) $page = 1; else $page = $_GET['product-page'];//получаем номер текущей страницы

	$parentid = get_queried_object_id();
	$args = [
		'parent' => $parentid
	];
	$terms = get_terms('product_cat', $args);
	if ($terms and $page==1)
	{
	echo '<ul class="products columns-3">';//3 - значит 3 колонки
	$i = 1;//счетчик для столбцов, если $i==1, то отображаем first, если $i==3, то отображаем last
	foreach ($terms as $term)
		{
		if ($i==4) $i = 1;//если началась следуюущая строчка, начинаем считать с первой колонки
		echo '<li class="product-category product'; if ($i==1) echo ' first'; if ($i==3) echo ' last'; echo '">';//3 - значит 3 колонки
		$i++;
		echo '<a href="'.(esc_url(get_term_link($term))).'" class="cat-'.($term->slug).'">';
		woocommerce_subcategory_thumbnail($term);
		echo $term->name;
		echo '</a>';
		echo '</li>';
		}
	echo '</ul>';
	}
}

add_action('woocommerce_before_shop_loop', 'print_shop_product_subcategories', 30);
Пример: https://noskilorenz.ru/product-category/collection/



[0.006795]