Есть wordpress. Там стандартный поиск. Но нужно немного изменить его алгоритм, чтобы он заменял в тексте запроса одну букву на другую. Но не все подряд а определенную на определенную. Например, ввели запрос "машина", но искать он должен по запросу "мОшинО". И как-нибудь так это делать, чтобы лишней нагрузки не было...
Подскажите, пожалуйста, где копать?
![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
Спустя 51 минута, 28 секунд (13.12.2010 - 10:00) walterb написал(а):
Точнее не так выразился - как заменить я знаю, что-то вроде такого:
Не знаю куда в wordpress это заснуть, чтобы работало... :(
$queryString=str_replace (array('а', 'А'),'б',$queryString);
Не знаю куда в wordpress это заснуть, чтобы работало... :(
Спустя 2 часа, 57 минут, 54 секунды (13.12.2010 - 12:58) walterb написал(а):
Ну помогите, пожалуйста, кто-нибудь...
Сама форма поиска отправляет значение s.
Если вставляю на страницу с результатами $s=str_replace (array('а', 'А'),'б',$s); толку никакого...
Сама форма поиска отправляет значение s.
Если вставляю на страницу с результатами $s=str_replace (array('а', 'А'),'б',$s); толку никакого...
Спустя 14 минут, 21 секунда (13.12.2010 - 13:12) kovaldm написал(а):
Я вобще не понял что нужно.
Спустя 15 минут, 23 секунды (13.12.2010 - 13:27) walterb написал(а):
Цитата |
Я вобще не понял что нужно. |
В Wordpress есть форма поиска. Например, такая:
<form method="get" name="searchform" id="searchform" action="<?php bloginfo('siteurl')?>">
<input type="text" name="s" id="s" class=srch_query value="<?php echo wp_specialchars($s, 1); ?>"/>
<input id="btnSearch" type="submit" name="submit" value="<?php _e('Найти'); ?>" />
</form>
То что мы ищем отправляется в элемент name="s".
Мне нужно добавить сюда нечто вроде регулярки, чтобы все буквы "а" в запросе менялись на "о" и поиск производился по новому запросу.
То есть я ввожу "абаж", а искать он должен "обож"...
По идее вот это должно работать
$s=str_replace (array('а', 'А'),'о',$s);
Не знаю куда именно добавить...
Спустя 2 минуты, 40 секунд (13.12.2010 - 13:30) kovaldm написал(а):
Если там UTF-8, то str_replace сработает некорректно.
Добавить функцию нужно туда где принимаются/обрабатываются данные из формы.
Добавить функцию нужно туда где принимаются/обрабатываются данные из формы.
Спустя 2 минуты, 2 секунды (13.12.2010 - 13:32) walterb написал(а):
Цитата (kovaldm @ 13.12.2010 - 10:30) |
Если там UTF-8, то str_replace сработает некорректно. Добавить функцию нужно туда где принимаются/обрабатываются данные из формы. |
Хм... Ну это ладно, можно и preg_replace использовать тогда...
Я не могу разобраться, куда именно ее вставлять... Весь двиг перекопал и не нашел... Вот и прошу помочь...
Спустя 2 минуты, 38 секунд (13.12.2010 - 13:35) kovaldm написал(а):
Где-то должно быть. Ищи тупым поиском в тексте $_GET['s'] или $_POST['s'].
Спустя 8 минут, 35 секунд (13.12.2010 - 13:43) walterb написал(а):
Цитата (kovaldm @ 13.12.2010 - 10:35) |
Где-то должно быть. Ищи тупым поиском в тексте $_GET['s'] или $_POST['s']. |
Да в том-то и проблема - искал тупым поиском и не нашел ни GET, ни POST...
Мистика...
----
Для UTF-8 думаю так подойдет:
$bukva = array ("'о'i", "'О'i");
$drbukva = array ( "a");
$s = preg_replace ($bukva, $drbukva, $s);
Спустя 1 час, 6 минут, 20 секунд (13.12.2010 - 14:50) walterb написал(а):
Предлагаю сто рублей на чай с печеньками тому, кто поможет...
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 1 час, 8 минут, 46 секунд (13.12.2010 - 15:58) walterb написал(а):
Господи, уже не важно за сколько, лишь бы кто помог...
![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
Спустя 3 часа, 26 минут, 18 секунд (13.12.2010 - 19:25) kovaldm написал(а):
Какая версия движка? Срочно надо?
Спустя 1 час, 4 минуты, 33 секунды (13.12.2010 - 20:29) walterb написал(а):
Цитата (kovaldm @ 13.12.2010 - 16:25) |
Какая версия движка? Срочно надо? |
Двиг 3.0.
Желательно конечно сегодня, но не критично...
Спустя 13 минут, 24 секунды (13.12.2010 - 20:43) Doszhan написал(а):
Форма поиска WP базируется на get_search_form()
http://wordpress.org/support/topic/edit-th..._search_form-gt
get_search_form() is located in wp-includes/general-template.php
Строка 115
http://wordpress.org/support/topic/edit-th..._search_form-gt
get_search_form() is located in wp-includes/general-template.php
Строка 115
![biggrin.gif](http://phpforum.ru/html/emoticons/biggrin.gif)
Спустя 43 минуты, 43 секунды (13.12.2010 - 21:26) walterb написал(а):
Отбой - на фрилансе за денюжку все сделали
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 3 минуты, 12 секунд (13.12.2010 - 21:30) Doszhan написал(а):
Где и что они правили? general-template.php?
Интересно ведь
Интересно ведь
Спустя 2 часа, 23 минуты, 7 секунд (13.12.2010 - 23:53) kovaldm написал(а):
Мне тоже интересно. Я так и не разобрался, правда не стал копать глубоко.