Главная » Backend » Как в WooCommerce убрать товары определенной категории с главной страницы магазина?
2018/05/18Метки: ,

Как в WooCommerce убрать товары определенной категории с главной страницы магазина?

Представим себе ситуацию, когда на главной странице магазина нужно из списка товаров удалить товары какой-то конкретной категории, например, «Подарочные сертификаты» или ещё какой-то другой мало значимой группы товаров.

Для этого нужно на событие pre_get_posts повесить кастомное действие, в котором следует сначала убедиться, что выполняется получение списка товаров именно на главной странице, а затем отсеять товары ненужной категории, скорректировав параметры запроса $query. Для этого в свойстве terms следует передать массив отбрасываемых категорий, а в operator отрицание вхождения в указанный список.

Рассматриваемое событие тригерится при каждом запросе WP_Query, непосредственно перед самим запросом в БД. Используется для того, чтобы модифицировать запрос, что мы и делаем в рамках решения обозначенной в заголовке статьи задачи. Важно помнить, что исключить товары заданной категории мы хотим в публичной части магазина, поэтому не забываем проверять, что запрос относится именно к ней с помощью условия !is_admin().

Таким образом, для отсеивания товаров заданных категорий с главной страницы магазина WooCommerce нужно добавить в конец файла /wp-content/themes/название_вашей_темы/functions.php следующий кусок кода:

// Удаляет товары заданных категорий из списка на главной странице магазина
function remove_goods_category($query) {
    if ($query->is_main_query() || $query->is_post_type_archive()) {
        if (!is_admin() && is_shop()) {
            $query->set("tax_query", array(array(
                "taxonomy" => "product_cat",
                "field" => "slug",
                "terms" => array("gifts"),
                "operator" => "NOT IN"
            )));
        }
    }
}
add_action("pre_get_posts", "remove_goods_category");
Метки: Метки: ,
Понравилась статья? — Ставь лайк!
2 Комментарии на “Как в WooCommerce убрать товары определенной категории с главной страницы магазина?”
  1. Adward:

    Захотелось вообще убрать с главной страницы магазина католог (который настраивается из админки) и вывести его шорткодом. Просто нужно несколько блоков контента расположить до вывода категорий товаров. А вот как это сделать — непонятно :-\

  2. александр:

    Благодарю. Всё получилось!)

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

×
Новости и обзор новинок рынка строительной техники.
Подпишитесь на обновления нашей группы!