WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Поиск и фильтр на одной кнопке в searchform

создал простую форму поиска с фильтрами (в примере добавлю 1) - нужно чтоб:
1.1 если выбран фильтр (нажата кнопка фильтра) при этом поле поиска пустое - пользователь нажал кнопку поиск то сработал фильтр и отправил пользователя на главную с параметром фильтра и отсортированными постами.
1.2 так как поиск пуст из url нужно удалить "&s=" или "?s="

зачем удалять "&s=" или "?s=" ?? ответ: на сайте есть скрытые посты от ручных воришек контента и если пользователю важен отдельный вопрос или контент , то к записи всегда есть доступ через поиск по сайту или google

2 если поле поиска заполнено, и не зависимо выбран фильтр или нет, нужно выполнить стандартный поиск

сейчас делаю так, правильно ли ?

// форма поиска 
<form role="search" method="get" id="searchform" action="<?php echo get_site_url( null, '', 'https' ); ?>">                 
	<input type="checkbox" name="update" value="1" />                                                         
	<input type="text" placeholder="Set or Search" name="s" id="s"  />
	<input type="submit" id="searchsubmit" value="Go go" />
</form>   

// фильтр отлавливает пустой поиск + переменные из URL 
function modified_posts_search( $query ) {
   if ( empty( get_search_query()) && is_search() ) {                   
		$url = add_query_arg( $_SERVER['QUERY_STRING'], '', home_url( $wp->request ) );
		$new_url = str_replace( array('&s=', '?s='), '', $url);
		//  $new_url = str_replace( '?s=', '', $new_url);

		$query->query_vars['s'] = 'false';  
		wp_redirect( $new_url );
	}

}

add_action( 'pre_get_posts', 'modified_posts_search' );
0
kolshix
3 месяца назад 615

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация