Суть вопрос в следующем: Пользователь вводит в поисковую строку номер 13.6АВ54:00%21
и жмет поиск!
Задача сайта перехватить эту строку, удалить лишние точки и символы, оставить только буквы и цифры: вот так - 136АВ540021
!
В случае с WordPress $st = preg_replace ("/[^a-zA-ZА-Яа-я0-9\s]/","",$st);
в этой форме
<form role="search" method="get" class="woocommerce-product-search" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<label class="screen-reader-text" for="woocommerce-product-search-field-<?php echo isset( $index ) ? absint( $index ) : 0; ?>"><?php _e( 'Search for:', 'woocommerce' ); ?></label>
<input type="search" id="woocommerce-product-search-field-<?php echo isset( $index ) ? absint( $index ) : 0; ?>" class="search-field" placeholder="<?php echo esc_attr__( 'Search products…', 'woocommerce' ); ?>" value="<?php echo get_search_query(); ?>"
name="s" />
<input type="submit" value="<?php echo esc_attr_x( 'Search', 'submit button', 'woocommerce' ); ?>" />
<input type="hidden" name="post_type" value="product" />
</form>
Работает не правильно, все равно ищет с точками и ничего не находит, но в поисковой строке подменяет как надо, то есть надо два раза повторять поиск, а нужно сразу что бы искало исправленную строку!
Есть идеи?
Добавьте такие фильтры в functions.php:
function clean_search_string( $s ) {
$s = preg_replace( "/[^a-zA-ZА-Яа-я0-9\s]/", '', $s );
return $s;
}
function get_search_query_filter( $query_var ) {
$query_var = clean_search_string( $query_var );
return $query_var;
}
add_filter( 'get_search_query', 'get_search_query_filter' );
function request_filter( $query_vars ) {
if ( isset( $query_vars['s'] ) ) {
$query_vars['s'] = clean_search_string( $query_vars['s'] );
}
return $query_vars;
}
add_filter( 'request', 'request_filter' );
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени суток, давно ищу простой и понятный код для отправки писем через smtpВезде где не искал, предлагают или огромную библиотеку...
Имеется PHP cronjob скрипт, который импортирует данные в БД WordPressДанных много, ориентировочное время выполнения должно быть 1
Пытаюсь сделать функциональность в WordPress которая бы парсила по URL определенное ревью с Amazon и потом добавляла его ко мне на сайтНе могу спарсить