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

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

HIT

22.01.2017

3665

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() ) { }

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

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

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

Тэги:

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

  • Похожие записи
  • Комментарии
  • Вложения
Лэйблы используя PHP

Лэйблы используя PHP

Как делать создание лэйблов налету средствами jQuery используя post_class описано здесь. В данной статье сделаем вывод подобных лэйблов средствами WordPress (PHP). Данный способ даст более гибкий и универсальный подход к Читать далее »

Счет на оплату

Счет на оплату

Дорабатываем стандартный функционал Woocommerce, добавляя в него генерацию и отправку счета на оплату. А также прочие способы дополнительных автоматических вложений: накладная, квитанция. Плагин WooCommerce PDF Invoices & Packing Slips У Читать далее »

Категория товаров NEW

Категория товаров NEW

Если у нас большой интернет-магазин с множеством подкатегорий, и периодически появляются новые, то дополнительное внимание к этому можно привлечь лэйблом NEW. По дате мы этот функционал реализовать не сможем т.к. Читать далее »

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

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

  1. Аватар
    Сергей

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

    1. Alexandr
      Alexandr

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

  2. Аватар
    Светлана

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

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