Фильтр и поиск вместе
есть стандартная форма поиска с добавлением фильтров "Точное совпадение" и язык ()
<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ) ?>" > <label class="screen-reader-text" for="s">search: </label> <input type="text" placeholder="MIN word length 3 symbols" value="<?php $str = get_search_query(); echo $str = str_replace(""", "", $str ); ?>" name="s" id="s" /> <input type="submit" id="searchsubmit" value="search" /> <div style="clear: both;"> // ТОЧНОЕ СОВПАДЕНИЕ <input type="checkbox" style="vertical-align: text-top;" name="exact-match" value="1" /> <b> Exact Match </b> // ЯЗЫК <?php function get_terms_dropdown($taxonomies, $args){ $myterms = get_terms($taxonomies, $args); $optionname = "language"; //CHANGE ME slug taxonomy $emptyvalue = ""; $output ="<select name='".$optionname."'><option selected='".$selected."' value='".$emptyvalue."'>Language</option>'"; foreach($myterms as $term){ $term_taxonomy=$term->language; //CHANGE ME slug taxonomy $term_slug=$term->slug; $term_name =$term->name; $link = $term_slug; $output .="<option name='".$link."' value='".$link."'>".$term_name."</option>"; } $output .="</select>"; return $output; } $taxonomies = array('comix-language'); // CHANGE ME $args = array('order'=>'ASC','hide_empty'=>true); echo get_terms_dropdown($taxonomies, $args); ?> </div> </form>
Суть вопроса
если в форме ничего не впишу то получим урл
example.com/?s=&language=
если в форме впишут слово "поиск" то получим урл
example.com/?s=поиск&language=
если в форме ничего не впишу и выберу язык то получим урл
example.com/?s=&language=english
если выбран и язык и категория то
example.com/?s=поиск&language=english
нужно чтоб
if (поиск пустой) {
человек остался на текущей страници - выполнилось якобы обновление
}
if ( поиск не пустой && не выбран язык ) {
Выполнился просто поиск, в урл отсутствовали слова "&language="
}
if ( поиск пустой && выбран язык) {
вывести категорию языка (заменить "?s=&language=english" на "?language/english/")
}
if ( выбран и поиск и язык) {
ничего не делать оставить все как есть (этот пункт работает автоматом )
}
сейчас работаю с фильтром четкое совпадение, если пользователь хочет найти все как написано
// четкое совпадение поиска function search_exact_match($query) { if ($query->is_search && isset( $_GET['exact-match'] ) ) { $exact_match = '"' . get_search_query( s ) . '"'; $query->set( 's', $exact_match) ; } else { return false; } } add_action('pre_get_posts', 'search_exact_match');
я подазриваю что через данный функционал можно поменять адреса URL под те что мне нужны и создать нужные условия, но я не знаю как подменять нужные совпадения