1 / 1 / 0
Регистрация: 04.04.2015
Сообщений: 5
1

Удаление с запроса поиска точек, пробелов, символов (метод поиска по сайту)

08.09.2017, 15:31. Показов 1356. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, знатоки, подскажите:
Если клиент вбивает в поиск номер продукта (например: 167.4А78-38 47) как сделать что бы с этого запроса удалить все не нужное и оставить только буквы и цифры (символы, пробелы, запятые, точки) и уже по базе что бы сайт искал не 167.4А78-38 47, а - 1674А783847 ???

Пробовал применять "str_replace" ничего не выходит, может в WordPress все намного сложнее и я не то делаю?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2017, 15:31
Ответы с готовыми решениями:

Реализация поиска по сайту - переход по станицам с сохранением запроса поиска
Всем известно что все запросы пользователя в данном случае хранятся в _GET массиве. Проблема такова...

Создание формы поиска на сайте. Почему не выводится результат поиска при вводе символов в поле поиска?
Добрый день! Создаю форму поиска с всплывающими подсказками. Попробую, выложить строки кода,...

вид поиска, метод поиска
Написать программу, реализующую один из алгоритмов программного поиска данных в информационном...

Удаление символов (., \, /, *, -, _,) с поискового поля "ПЕРЕД" запросом поиска!
Помогите :cry: может кто знает, как решить сей трабл??? $string = preg_replace("//", '',...

4
163 / 164 / 78
Регистрация: 06.09.2015
Сообщений: 632
08.09.2017, 22:07 2
Cout, это должно удалить все символы кроме числобуквенных

PHP
1
$string = preg_replace("/[^A-Za-z0-9 ]/", '', $string);
0
1 / 1 / 0
Регистрация: 04.04.2015
Сообщений: 5
09.09.2017, 14:23  [ТС] 3
$string = preg_replace("/[^A-Za-z0-9 ]/", '', $string);

И опять ничего, может подскажите как правильно и куда вставлять, а то уже паника!

ОТ ЕСТЬ ТАКОЙ КОД ПОИСКА :

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static function get_main_search_query_sql() {
        global $wp_the_query, $wpdb;
        
        $args         = $wp_the_query->query_vars;
        $search_terms = isset( $args['search_terms'] ) ? $args['search_terms'] : array();
        $sql          = array();
 
        foreach ( $search_terms as $term ) {
            // Terms prefixed with '-' should be excluded.
            $include = '-' !== substr( $term, 0, 1 );
 
            if ( $include ) {
                $like_op  = 'LIKE';
                $andor_op = 'OR';
            } else {
                $like_op  = 'NOT LIKE';
                $andor_op = 'AND';
                $term     = substr( $term, 1 );
            }
 
            $like  = '%' . $wpdb->esc_like( $term ) . '%';
            $sql[] = $wpdb->prepare( "(($wpdb->posts.post_title $like_op %s) $andor_op ($wpdb->posts.post_excerpt $like_op %s) $andor_op ($wpdb->posts.post_content $like_op %s))", $like, $like, $like );
        }
 
        if ( ! empty( $sql ) && ! is_user_logged_in() ) {
            $sql[] = "($wpdb->posts.post_password = '')";
        }
 
        return implode( ' AND ', $sql );
    }
И САМА ФОРМА ПОИСКА
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
/**
 * The template for displaying product search form
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/product-searchform.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 2.5.0
 */
 
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
?>
<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&hellip;', '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>
КУДА ЭТО ТЫКНУТЬ??
0
163 / 164 / 78
Регистрация: 06.09.2015
Сообщений: 632
09.09.2017, 18:11 4
PHP
1
<?php echo get_search_query(); ?>
сохрани get_search_query(); в переменную, обработай эту строку и выведи её
0
1 / 1 / 0
Регистрация: 04.04.2015
Сообщений: 5
11.09.2017, 14:57  [ТС] 5
Пробовал ТАк:
PHP
1
2
value="<?php echo $str ?> вместо 
 value="<?php echo get_search_query(); ?>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
$str = get_search_query();
$str = preg_replace("/[^A-Za-z0-9 ]/", '', $str);
?>
<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&hellip;', 'woocommerce' ); ?>" value="<?php echo $str ?>" name="s" />
    <input type="submit" value="<?php echo esc_attr_x( 'Search', 'submit button', 'woocommerce' ); ?>" />
    <input type="hidden" name="post_type" value="product" />
</form>
Символы убтрает, спасибо, но все равно по базе ищет с символами и ничего не находит!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2017, 14:57
Помогаю со студенческими работами здесь

вывод поиска по сайту
подскажите, как сделать вывод поиска по тексту такого вида: есть искомый набор слов: $a =...

Скрипт поиска по сайту
вообщем ребят такая проблемка возникла, скрипт почему то выдает какие то странные символы,...

Скрипт поиска по сайту...
Народ помогите со скриптом поиска, на локальном сервере работает отлично () на хосте отказывается...

Создание поиска по сайту
Подскажите пожалуйста как реализовать поиск по сайту. Я имею: таблицу где прописаны все разделы...

Скорость поиска по сайту
Возник вопрос: влияет ли на скорость поиска количество введенных слов? Например, запросы &quot;гайка...

Организация поиска по сайту
Собственно сабж. Думается, что необходимо использовать кукую-нить программу (скрипт) которая бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru