Поиск и фильтр на одной кнопке в 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' );