Отключаем функцию поиска в WordPress
При использовании WordPress в качестве CMS иногда функция поиска становится бесполезной. Если вы все это время ждали момента, чтобы избавиться от функционала поиска, то эта статья именно для вас. Мы расскажем как полностью отключить функцию поиска в WordPress.
Открываем файл functions.php вашей темы и добавляем в него следующий код:
function fb_filter_query( $query, $error = true ) { if ( is_search() ) { $query->is_search = false; $query->query_vars[s] = false; $query->query[s] = false; // если ошибка if ( $error == true ) $query->is_404 = true; } } add_action( 'parse_query', 'fb_filter_query' ); add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
Примечание: если вы выставите для $error значение true, тогда пользователь будет перенаправлен на вашу страницу 404 (в директории с темой файл 404.php должен присутствовать). Если же вы установите значение false, тогда пользователь останется на той странице, на которой он попытался воспользоваться поиском.
Источник: WPEngineer
Ограничиваем количество результатов поиска для определенных типов записей в WordPress
Задавались ли вы когда-либо целью ограничить количество результатов поиска для определенных типов записей? Это не очень сложно. Выше мы уже рассказали как полностью отключить функцию поиска в WordPress, просто модифицировав файл functions.php. Теперь мы сделаем тоже самое, только фильтруя результаты поиска по запросу.
Открываем ваш файл functions.php и добавляем следующие строки кода:
function searchfilter($query) { if ($query->is_search && !is_admin() ) { $query->set('post_type',array('post','page')); } return $query; } add_filter('pre_get_posts','searchfilter');
Обратите внимание на строку
$query->set('post_type',array('post','page'));
Вы можете отфильтровать результаты поиска, изменяя значения в массиве переменных. На текущий момент фильтрация выставлена для отображения записей и страниц, однако добавить сюда можно все, что вам будет угодно.