У движка Wordpress - отвратительный поиск. Авторы видимо понадеялись на плагин-мейкеров, но те ничего путного так и не сделали. (Во всяком случае для русской орфографии). Если не верите, можете попробовать ввести в поиск запросы, по которым люди попадают на ваш сайт. С любыми плагинами, в большинстве случаев будет: "Sorry, no posts matched your criteria."
Вообще нормальный скрипт поиска - очень сложная штука, т.к необходимо перебирать все формы слова и.т.д. Но тут приходит разумная мысль: зачем мудрить, когда существуют такие поисковые монстры как Google и Яндекс? Остается их просто аккуратно прикрутить к сайту. Далее расскажу, как не просто повесить окошко их поиска, а "встроить" поисковик в структуру сайта.
У Google такая штука идет в комплекте с рекламой, и возможностей у нее мало. Поэтому работать будем с Яндексом. Тем более, что они даже специальный сервис для интеграции сделали. Яндекс.XML называется. Итак.
- Этот способ дает возможность выводить результаты поиска на вашем сайте в соответствии с вашим дизайном, и без лишнего.
- Ваш сайт должен быть проиндексирован Яндексом.
- Ограничение на 1000 поисков в день.
- Хостинг должен поддерживать удаленное открытие файлов, и PHP.
- Скрипт идет с подробными комментариями.
Заливаем на хостинг скрипт, изменяем его под сайт, и запускаем. Видим что с ip такого-то поиск запрещен. Копируем ip. Заходим сюда, регистрируемся и вводим это ip. Если выходит ошибка, придется требовать у хостера сменить ip. Теперь с yandex_search.php, можно сделать include() в ваш сайт. Примерное использование, смотрите в example.html. Собственно все.
Интеграция в Wordpress
Рассмотрим очень грубый зато универсальный способ.
- Залейте скрипт в папку с текущей темой (что то типа wp-content/themes/название_темы/)
- В скрипте замените:
На:
$query_=$HTTP_POST_VARS['searchstr'];
(В Wordpress искомое, всегда находитья в переменной $s.)$query_=urlencode($s);
- Выполните вышеописанные манипуляции с ip
- В папке c темой, в самый конец header.php
после:
добавьте:
<div id=content>
< ?php if ($s!="") {include("yandex_search.php");} ?>