Кастомизация пойска: указать минимальное кол-во символов чтобы поиск начал работать.
Избитая тема, но есть одна проблема которую хотелось бы решить..
Если вбить на любом сайте wp (в т.ч. wp-kama) в строку пойска одну букву, то выдаст 2000 страниц. Подскажите кто разбирается как не пропускать короткие запросы через пойск. Желательно без редиректа.
На хуке parse_query можно попробовать проверить
$this->query['s']и заменить его на пустую строку. Если будут баги может на слово, которое точно не будет найдена нигде.Вышло так..
function Parse_search( $query ) { if( isset( $query->query['s'] ) ) { if( strlen( $query->query['s'] ) < 8 ) { $query->set('s','АААААААА'); } } } add_action( 'parse_query', 'Parse_search' );спасибо
Еще обнаружил опытным путем что search все равно проходит (но при этом заголовок пустой (если
$query->set('s','');) а портянка все равно есть (при этом в ней почему то вылезли хтмл сущьности). Решил так..if( get_search_query() ) : if ( have_posts() ) { /*бла бла бла*/ else : get_template_part( 'template-parts/content', 'none' ); endif;в search php
При таком методе пагинация (1,2,3..далее) все равно вылазит, поэтому решил так, т.к. не нашел как сбросить по другому..
function SearchFilter($query) { if ( isset( $query->query['s'] ) && $query->is_main_query() ) { if( strlen( $query->query['s'] ) >= 8 ) { $query->set( 'post_type', array('post','english') ); $query->set( 'sentence', 1 ); } else { if( !is_admin() ) $query->set( 'post_type', 'empty' ); } } return $query; } add_filter('pre_get_posts','SearchFilter');способ для честных посетителей: добавить в форму "minlength"
через урл конечно обходится