По умолчанию для поиска в 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