Полное отключение стандартного поиска в WordPress

Предположим, вы не используете поиск на своем блоге, либо у вас стоит поиск от google, или на ajax, как у меня.

А что вы сделали с тем поиском, который был в WordPress по умолчанию? Просто убрать форму поиска из виджетов или из кода темы недостаточно. Ведь когда я не находил её на сайте, я вводил поисковой запрос напрямую в URL, например https://truemisha.ru/?s=wordpress

Для отключения такой возможности вставьте этот код в functions.php текущей темы или в свой плагин:

function true_search_turn_off( $q, $e = true ) {
	if ( is_search() ) {
		$q->is_search = false;
		$q->query_vars[s] = false;
		$q->query[s] = false;	
		if ( $e == true ){
			// вешаем страницу с ошибкой 404
			$q->is_404 = true;
		}
	}
}
 
add_action( 'parse_query', 'true_search_turn_off' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

Теперь, в том случае, если кто-то захочет обратиться к результатам поиска напрямую через URL, его перекинет на страницу 404-й ошибки.

Подпишитесь, чтобы раз в неделю получать свежие статьи с блога по email.

Смотрите также

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...