/ Сайтостроение / Плагины / Отделить категории от товаров

Отделить категории от товаров

HIT

22.01.2017

2527

3

В архивах woocommerce выводит категории и товары в один список (если включить настройку выводить категории и товары). Но нам, например, необходимо категории оформить по другому. Для этого нужно отделить категории от товаров разделив список.

Разделение

Включаем настройку отображения Показывать товары, при этом будут выводится все товары категории и подкатегорий, это и хорошо!, т.к. выведенные сверху подкатегории будут служить фильтром.

Включаем такой хук:

// Отделяем категории от товаров
function tutsplus_product_subcategories( $args = array() ) {

$parentid = get_queried_object_id();

$args = array(
'parent' => $parentid
);

$terms = get_terms( 'product_cat', $args );

if ( $terms ) {

echo '<ul class="product-cats">';

foreach ( $terms as $term ) {

echo '<li class="category">';
echo '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '">';
woocommerce_subcategory_thumbnail( $term );

echo '<h3>'.$term->name.'</h3>';
echo '</a>';
}

echo '</ul>';

}

}
add_action( 'woocommerce_before_shop_loop', 'tutsplus_product_subcategories', 50 );

Функция создает новый список с категориями перед товарами. Стили можно позаимствовать/объединить с товарными, для этого ul нужно добавить класс products, а li product. Также можно задать для категорий отдельные стили и верстку.

Еще можно вывести количество товаров в каждой категории, добавить:

echo '<p class="count">'.$term->count.'</p>';

В шаблоне результатов поиска выводятся все родительские категории товаров, независимо от того какие товары мы ищем — это неправильно. Чтобы этого избежать добавим внутри функции проверку if ( !is_search() ) { }

Отдельные шаблоны

Бывает необходимо разделить вывод категорий и товаров в разные шаблоны.

Как это сделать?

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Upgrade WC

Upgrade WC

Очередная серия улучшений (upgrade) плагина WC. Буду добавлять по мере изучения новые решения. Поиск по SKU (артикулу) Из коробки WC не ищет по артикулам (SKU). Но достаточно установить плагин Search Читать далее »

/
Иерархия по бренду

Иерархия по бренду

В woocommerce существует иерархия товаров по категории (product_cat), но не всегда этого достаточно. Создадим в woocommerce дополнительную иерархию по бренду. Сортировка по бренду Первым делом создаем атрибут товара Бренд и Читать далее »

Субкатегории в категориях Woocommerce

Субкатегории в категориях Woocommerce

В шаблоне вывода категорий Woocommerce к каждой категории можно выводить список субкатегорий. Для этого в шаблоне content-product_cat.php, перед закрывающим тегом /li вставляем следующее <div class="podrazdely"> <?php $wsubargs = array( 'hierarchical' Читать далее »

Добавить комментарий

3 комментария

  1. Сергей

    Спасибо за Ваше решение! Долго искал и не мог найти рабочее. Стилями и тегами подогнал под то, что мне было нужно. Все выглядит и работает как надо.

    1. Alexandr
      Alexandr

      Спасибо! Но должен сказать, что данное решение не мое. Нашел на каком-то из зарубежных сайтов. Проверил и тоже решил, что решение неплохое.

  2. Светлана

    Спасибо, все работает, кроме if ( !is_search() ) { } — категории все равно отображаются в поиске.Можно как-то исправить?

Отделить категории от товаров
Процесс заказа WC
Рекомендации для васПроцесс заказа WCOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.