Шаг № 36.Как сделать нормальный поиск в wordpress?

Привет друзья, совсем недавно на этом сайте я писал урок о размещении формы поиска в произвольном месте на странице, сегодня я хочу более детально рассмотреть вопрос поиска в wordpress.

Вот список того, что меня не устраивает в стандартном поиске в wordpress.

Недостатки стандартного поиска wordpress.

  • Нет подсветки в результатах поиска искомого запроса.

Очень удобно когда вводишь запрос, и попадаешь на страницу результатов поиска , сразу исходный запрос подсвечен, и нет нужды всматриваться в предложения и разбираться это то, что нужно или нет.

  • Не учитывает различные словоформы и морфологию запроса.

Допустим мы вводим запрос “Разработка сайтов”, так вот стандартный поиск будет искать только точное совпадения текста с запросом, и все варианты “разработка сайта”, “сайт разработка” будут отброшены, и в итоге не появятся на странице результатов поиска.

  • Выводит результаты поиска сортируя их не по релевантности, а по дате обновления.

Результаты поиска в стандартном поиске wordpress сортируются по такому принципу – самый свежий материал будет сверху, совсем не учитывая релевантность, это не есть хорошо, так как поиск прежде всего должен быть релевантным.

  • Показывает как правило стандартное превью статьи, вместо выдержки.

Что я имел ввиду написав предложение выше? Ну прежде всего то что wordpress выведет посты в результатах поиска до тега <!-more->, и в них даже могут не входить искомый запрос, возможно он и вправду потом встречается в тексте, если нажать на кнопку читать далее, но поиск он на то и поиск что бы показывать то что нужно, не тратя на это время.

  • Количество постов выводимых на странице поиска wordpress будет равняться количеству, которое вы указали в настройках сайта.

Например если Вы указали в настройках, что следует выводить только 5 постов на странице, тогда и на странице поиска будет тоже выводиться только 5 постов.

Учитывая все недостатки стандартного поиска, я пришел к выводу, что на этом сайте нужно изменить стандартный поиск на что то лучшее, и тогда я принялся искать альтернативу стандартному поиску в wordpress.

Скажу сразу, перепробовал я много различных вариантов:

  • Установка различных плагинов
  • Изменение регулярного выражения, которое отвечает за поиск исходного запроса
  • Изменение стандартной страницы поиска

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

Был даже такой плагин под названием sphinx search возможно очень мощный в поиске, но сложный в установке, так как для его настройки Вам потребуется виртуальный выделенный сервер(еще его называют VPS), и на обычный хостинг он вряд ли установится.

И вот наконец то после долгих часов поиска, того что мне нужно мне на глаза попался плагин для wordpress под названием Relevanssi.

Сначала, я даже не поверил, что нашел то, что нужно, но потом прочитав описание этого плагина,я понял, что наткнулся как раз на то что искал.

Давайте посмотрим на возможности плагина поиска для wordpress под названием Relevansi:

Возможности плагина поиска для wordpress Relevansi.

  • Результаты поиска сортируются в порядке значимости (релевантный поиск), а не по дате.
  • Поиск учитывает частичное вхождение слова, если нет полного соответствия исходному запросу.
  • Позволяет выполнять строгий и не строгий поиск (логические операторы AND и OR).
  • Выделение искомого запроса цветом (подсветка запроса).
  • Поиск в произвольных полях (комментарии, теги).
  • Плагин ведет статистику запросов, в любое время Вы сможете увидеть что искали люди на Вашем сайте.

Улучшаем поиск в wordpress.

Итак, если Вы решили последовать моему примеру и установить себе на сайт плагин поиска Relevansi тогда приступим.

Установите плагин Relevansi на сайт. Если Вы забыли как устанавливать плагины на wordpress тогда вернитесь к уроку установка плагинов на wordpress и прочитайте сначала и до конца, а потом возвращайтесь к этому уроку.

После установки заходим в настройки плагина. Не пугайтесь сильно что плагин на английском языке, возможно в дальнейшем я сделаю перевод для этого плагина.

Первым делом нам нужно нажать на кнопку “Build the index” и проиндексируем все материалы Вашего сайта.

Размер сниппета поисковой выдачи

Плагин имеет огромное количество настроек, в которых Вы в дальнейшем сможете сесть и разобраться, но перейдем сразу к тем настройкам которые добавляют функционал, указанный выше.

Настройка поиска wordpress

450 – количество символов , которые будут выводиться в сниппете на странице поисковой выдачи. Если переключить characters на words то 450 – это уже будет количество слов, которые будут выводиться.

Подсветка поисковых слов на странице поиска

Следующий шаг, устанавливаем подсветку поисковых слов – в выпадающем меню выберите Background color.

Пункт “Background color for highlight:” – отвечает за цвет подсветки.

Настройка поиска wordpress

Обязательно установите галочку на пункте “Uncheck this if you use non ASCII characters”. Пока я не установил там галочку, подсветка поисковых слов не работала.

Заключение.

Основные настройки я описал, не забудьте в конце нажать на кнопочку “Save the options”, для того что бы сохранить настройки.

Я еще раз повторюсь, что плагин имеет огромное количество второстепенных настроек, и если Вы хотите выжать из него по максимуму функциональности, то Вам придется посидеть и разобраться еще самим в настройках.

Голосование:

Помогла ли Вам данная статья улучшить поиск по сайту на wordpress на сайт?

  • Артем

    А когда я установил этот плагин, то мне выдало следующее сообщение после активации:
    Плагин произвёл при активации 733 символов неожиданного вывода. Если вы заметите ошибку «headers already sent», проблемы с RSS-лентами или другие неполадки, попробуйте деактивировать или удалить этот плагин.

    • http://wpcreate.ru Артем Петрусенко

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

  • Андрей

    Спасибо за статью! Пробую установить,все корректно,поиск работает. Но есть небольшой недочет и проблемка, не работает подсветка искомых слов,при выводе списка результатов. Но опция подсветки результатов после открытия поста работает нормально. Пробовал как с галочкой тут Uncheck this if you use non ASCII characters так и без ,причем подсветка слов в открытом посте работает,когда галки нету. Помогите разобраться.Спасибо!

  • http://uhodzadetmi.ru/ ильдар

    я вот все мечтаю поставить себе поиск от гугл или яндекс. раньше меня бесило, когда люди ставят себе такое на сайт, а потом понял что это очень удобно. правду руки никак не доходят, а еще эта лень…

  • http://mes-blog.com.ua Евгений

    Я бы всем советовал юзать «Яндекс поиск», это просто сила сильная. Он даже с комментариев собирает поисковые запросы!)

    • http://wpcreate.ru Артем Петрусенко

      Я сейчас тестирую одну системку, после этого установлю яндекс поиск, может позже попробую еще и гугл поиск, по статистике с яндекса сейчас переходов в 2 раза меньше чем из гугла, возможно если установлю яндекс поиск то смогу подтянуть и яндекс запросы.

      • http://mes-blog.com.ua Евгений

        Думаю вряд ли подтяните запросы! Яша это такой себе злой поисковичек, вряд ли он подтягивает запросы, если ставишь их поиск. Google поиск прикольно, показывает даже картинки к статьям и туда можно внедрить Google Adsense. Но поиск от Яши лучше, даже не знаю чем, но я заменил поиск от Гугла, поиском от Яши!)

        Подождем Вашего мнения!)

  • http://uhodzadetmi.ru/ ильдар

    столкнулся с некоторыми проблемами при установке поиска. поэтому дополнил поиск
    плагином. теперь почти те же функции что и в статье=)

  • http://tvoyuspex.ru/ Юрий

    Я что-то не пойму! А как саму форму поиска выводить на сайте???
    Плагин установил и разобрался в настройках самостоятельно. А когда зашел в виджеты — там формы поиска от данного плагина нету. Может у меня шаблон не подходит? Начал искать ответ в сети, нашел вашу статью, а здесь только о настройках, а о выводе самой формы тоже ничего. И в комментах нет подобных вопросов. Неужели это я такой чайник? Подскажите, плиз, как все-таки вывести форму поиска этого плагина на сайте?

    • http://wpcreate.ru Артем Петрусенко

      Результат выводится вместо стандартной страницы поиска, следовательно никакой дополнительной формы поиска не требуется.

      • http://tvoyuspex.ru Юрий

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

  • http://yarovaya-travel.ru/ Ирина

    Артем, добрый вечер!

    Плагин Relevansi не находится.
    Пишет «Нет плагинов, удовлетворяющих вашему запросу».
    Может этот плагин переименовали?

  • http://myrender.ru Александр

    Доброе утро!
    Хорошая статья, только с одним маленьким «но» в название плагина допущена ошибка. Он называется не Relevansi а Relevanssi.

  • Антон

    Я удалил поиск из меню в теме twenty eleven, но место где он находился теперь не используется по назначению меню.

  • Алёнка

    Здравствуйте, скажите пожалуйста как сделать поиск по рубрике?

  • http://mobile-operators.ru/ Тимур

    Сегодня обратил внимание что поиск у меня такую фигню выдает ужас просто, хотя теги к статьям прописывал. Начал искать варианты и попал на ваш блог, спасибо за наводку — нашел в Яндексе русифицированный плагин Relevanssi, теперь ищет как надо ➡ поблагодарил вас — клик клик 😉
    p.s. Админ блога http://mobile-operators.ru/

  • http://torpage.ru Олег

    Хороший плагин для worpress — torpage.ru

  • http://ukrainianfishing.com.ua/ Николай

    Спасибо Артем! Установил все работает отлично!

  • Наталья

    Спасибо за статью.
    Не подскажете — а как сделать, чтобы поиск не распространялся на страницы меню?
    Вот, например, у меня в странице «Контакты» есть слово «почта». И при при наборе в окне поиска этого слова среди результатов присутствует и страница “Контакты” в виде записи блога. выглядит странно 😯
    Можно с этим как-то бороться?

    • Андрей

      Попробуй вставить этот код в файл function

      function search_posts_only($where) {
      global $wp_query, $wpdb;

      if ( !empty($wp_query->query_vars[‘s’]) ) {
      $where .= » AND $wpdb->posts.post_type != ‘page'»;
      }

      return $where;
      }
      add_filter(‘posts_where’, ‘search_posts_only’);

  • Андрей

    Привет, подскажи как исключить рубрику и все посты которые в ней из поиска, неохота устанавливать плагин ради такой мелочи.