Woocommerce поиск в категории не работает - PullRequest
0 голосов
/ 24 сентября 2019

Я разрабатываю магазин в Woocommerce со своей темой.Моя проблема в том, что когда я хочу искать товары в категории по запросу website.com/?s=product&product_cat=category, я получаю результат со всеми товарами из этой категории.Моя страница: http://nsr.przedprojekt.com/wp/?s=kross&product_cat=rowery.

В functions.php я не объявил woocommerce и не хочу этого делать.Я попытался переопределить шаблон archive-page.php, но это также не сработало.

1 Ответ

1 голос
/ 24 сентября 2019

По умолчанию для поиска в WordPress принимается только один параметр:? S = your-term

Чтобы добавить дополнительные функции в поиск Wordpress, необходимо создать новую конфигурацию поиска, которая будет принимать дополнительный параметр.

Например.

Если вы хотите искать внутри определенной категории, вы должны создать пользовательскую функцию, например:

// advanced search functionality
function advanced_search_query($query) {

    if($query->is_search()) {

        // your extra param is: in_category // &in_category=sample-category
        if (isset($_GET['in_category'])) {
            $query->set('category_name', $_GET['in_category']);
        }

        return $query;
    }

}
add_action('pre_get_posts', 'advanced_search_query', 1000);

Кстати, здесь это не заканчивается.

Это пользовательский поиск в обычной категории Wordpress, но это та же логика для создания пользовательского поиска для Woocommerce.

Просто вам нужно добавить еще переменную запроса в wordpress WP_Query, напримерэто:

// advanced search functionality
function advanced_search_query($query) {

    if($query->is_search()) {
        if (isset($_GET['in_category'])) {

            $query->set('tax_query', array(array(
                'taxonomy' => 'product_cat',
                'field' => 'slug',
                'terms' => array($_GET['in_category']) )
            ));
        }

        return $query;
    }

}
add_action('pre_get_posts', 'advanced_search_query', 1000);

Теперь вы можете использовать синтаксис, как это: http://nsr.przedprojekt.com/wp/?s=kross&in_category=rowery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...