Как создать продвинутый поиск в WordPress с помощью Wp_query

Содержание материала:

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

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

Список улучшений, которые мы добавим:

  • Подсчет результатов поиска.
  • Подсветка совпадений слов поискового запроса.
  • Исключение определенных категорий из поиска.
  • Улучшение страницы «не найденных результатов».

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

Подсчет результатов поиска.

Нужно открыть файл search.php , он находится внутри вашей темы. Нас интересует стандартная фраза поиска, примерно такая:

Заменяем ее на код ниже, и в случае, если такой фразы не найдете в файле, то просто вставляете также этот код:

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

По Вашему запросу «статья» — 5 результатов

Последнее что осталось, это добавить стили.

Вот и все, идем дальше.

Подсветка совпадений слов поискового запроса.

Тут могут появиться затруднения, поскольку не во всех темах может совпадать выводы записей, но приблизительно можно найти нужный код. Снова открываем файл search.php и ищем следующий отрывок кода:

Его нужно заменить на этот код:

Дальше ищем один из двух вариантов кода, такой:

И меняем на этот отрывок кода:

И не забываем добавить стили, чтобы искомые слова выделялись:

На этом все, идем дальше.

Исключение определенных категорий из поиска.

Если есть такая нужда исключить какую-то категорию или даже несколько из поиска, то это можно сделать следующим способом. Открыть файл functions.php и в самом конце перед знаком ?> добавьте код:

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

Улучшение страницы «не найденных результатов»

Во многих темах на данной страницы выводится минимальная информация по запросу поиска. К примеру, посетитель вашего сайта вбивает в поиск какую-то фразу или название статьи, в общем, то что хочет найти. И в случае, если не будет совпадений, поиск скажет «результатов нет» или что-то в этом роде, и больше ничего. Нужно исправить этот минимум и расширить на более расширенный результат.

Сделаем, чтобы выводилась все информация, которая есть на сайте (блоге).
Нужно открыть снова файл search.php , и найти стандартную надпись, примерно такую:

И заменить на этот код:

Последнее — добавим стили:

Стили можете отредактировать под ваш дизайн, и добавьте изображение где указано в стилях. Это будет вместо маркеров ul . Таким образом мы улучшили оформление поиска в WordPress.

10 плагинов WordPress для поиска по сайту

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

Бесплатные плагины

Этот плагин заменяет стандартную систему поиска WordPress на систему, которая работает с частичными совпадениями, сортируя результаты поиска по релевантности. Плагин также индексирует комментарии. Premium-версия плагина поддерживает WordPress Multisite.

Основные особенности плагина:

  • результаты поиска сортируются в порядке релевантности, а не по дате;
  • работает с нечеткими совпадениями: соответствие частичных слов, если полные слова не совпадают;
  • поиск документов, которые соответствуют только одному слову из поискового запроса или по всем словам запроса;
  • подсветка условий поиска в документе, когда пользователь просматривает результаты поиска;
  • поиск комментариев, тэгов, категорий и многое другое;
  • возможность регулировать вес заголовков, тэгов и комментариев;
  • сохранение истории запросов: отображение самых популярных и последних запросов;
  • использование предположений «Возможно, вы имели в виду…?», основанные на успешном поиске пользователей;
  • расширенные возможности фильтрации;
  • ограничение результатов поиска для повышения производительности больших баз данных.

Стоимость: бесплатно, но есть платная Premium-версия.

Standard — $49,95 в год. Включает использование плагина для неограниченного количества личных сайтов, а также поддержку и обновления на год.
Developer — $79,95 в год. Включает использование плагина для неограниченного количества личных, клиентских и коммерческих сайтов, а также поддержку и обновления на год.
Permanent — $219,95, разовая оплата. Включает использование плагина для неограниченного количества личных, клиентских и коммерческих сайтов, а также поддержку и обновления пожизненно.

Больше деталей на сайте разработчиков https://www.relevanssi.com/

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

Техника “живого поиска” означает, что большинство людей смогут найти то, что они ищут, еще до того, как закончат вводить свой запрос. Это экономит время пользователей на поиск нужной им информации.

Плагин заменит стандартную поисковую систему WordPress усовершенствованной системой поиска, которая сортирует результаты по релевантности. Плагин совершает поиск по постам, заголовкам, страницам и другим пользовательским типам постов.

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

  • результаты поиска интегрированы в вашу тему без необходимости настройки пользовательских шаблонов поиска;
  • результаты поиска автоматически сортируются по релевантности. Если отключить поиск на основе релевантности, результаты будут сортироваться по дате;
  • точная настройка результатов путем изменения весов заголовка поста и его контента;
  • доступна тепловая карта, которая отображает самые популярные запросы на вашем сайте;
  • работает с кэширующими плагинами, например, WP-Super-Cache и W3 Total Cache.

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

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

Этот плагин позволяет использовать систему поиска Sphinx Search Server, заменяя базовую систему WordPress на улучшенную систему для более быстрого и релевантного поиска. Особенно это актуально для больших WordPress-сайтов.

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

Этот плагин — самый простой способ интегрировать систему поиска Google в ваш WordPress-сайт. Вам необходимо будет лишь зарегистрироваться на Google Custom Search, получить Google Search Engine ID и добавить его в настройки плагина. После этого вы сможете добавить виджет поиска Google в боковую панель.

Искать можно как веб-страницы, так и изображения. Настройки позволяют ограничить поиск только вашим сайтом или осуществлять его по всему интернету. Кроме этого, вы можете определить внешний вид поиска, его возможности и многое другое. Результаты поиска могут отображаться в обычном или всплывающем окне.

Плагин улучшает стандартную систему поиска WordPress путем интеграции с Amazon CloudSearch. Учитывает даты и метаданные при осуществлении поиска, пользовательские типы постов, поисковые запросы и прочее. Для использования плагина, необходима регистрация на Amazon CloudSearch.

Платные плагины

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

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

Стоимость пакетов:
Single — $79/год. Включает лицензию для 1 сайта, 1 год поддержки и обновлений, а также все официальные расширения.
Business — $149/год. Включает лицензию для 5 сайтов, 1 год поддержки и обновлений, а также все официальные расширения.
Developer — $299/год. Включает лицензию для неограниченного количества сайтов, 1 год поддержки и обновлений, а также все официальные расширения.

Этот плагин улучшает функциональность вашего базового поиска WordPress. Осуществляет поиск по разделам, страницам и постам. Совместим с WooCommerce по поисковым фразам, выдающихся в результатах поиска. Поддерживает использование виджетов и шорткодов.

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

Стоимость: $21/$105 в зависимости от типа лицензии.

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

Стоимость: $29/$150 в зависимости от типа лицензии.

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

У нас есть и другие подборки плагинов для WordPress:

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

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

По этой причине создатели популярных плагинов для WordPress много потрудились и привнесли значительный вклад в развитие поисковых возможностей для сайта на самом популярном «движке».

Топ-пост этого месяца:  Создание фреймворка. Виджет меню

Поиск по сайту WordPress

Практически на любом сайте существует форма поиска по фразам которые интересуют читателей. Хорошо настроенный поиск улучшит взаимопонимание с вашими клиентами и просто посетителями.

Увы, но разработчики WordPress платформы не позаботились о том, что бы дать пользователям CMS подходящий поисковой модуль по умолчанию, сразу после установки платформы на сервер. По этой причине были созданы множество дополнений, которые способны анализировать, находить и подсвечивать нужные слова или фразы в контенте, что безусловно увеличит количество переходов и время проведения на сайте.

Как улучшить поиск в WordPress?

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

Я решил остановить свое внимание на плагине Search Everything, который дополняет и усовершенствует поиск по сайту WordPress. Почему именно на нем? Всему причиной является его простота и в то же время качественный функционал.

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

Настройка Search Everything плагина для поиска по сайту WordPress.

Дословный перевод «поиск всего». Что же может это дополнение? Заходим панели администрирования WordPress в «Настройки»/»Search Everything».

Первые параметры настройки поиска выглядят примерно так:

Enable research tool on compose screen. Этот чекбокс подключает инструменты поиска к нашему сайту.

Enable search results from the web on compose screen. Предлагает нам так же задействовать поиск с интернет страниц, эта галочка нам ни к чему, ведь она потенциально может увести нашего посетителя с нашего сайта, что нам конечно же не нужно.

Следующий блок поисковых настроек плагина Search Everything заключаются в следующем:

По этим параметрам мы можем настроить места в которых будет осуществляться поиск по сайту.

Третий блок настроек плагина Search Everything содержит:

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

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

Не пренебрегайте данным плагином, он не грузит вашу платформу на столько, что бы это было ощутимым, а «выхлоп» от его работы достаточно весомый.

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

Поиск по сайту wordpress

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

По-умолчанию, WP делает поиск по заголовкам, контенту и цитатам, — да и сам поиск в wordpress работает не сильно эффективно, например «рука» и «руки» для него разные вещи �� . Как решить эту проблему я расскажу чуть позже, а сейчас давайте разберемся зачем нужен поиск по WordPress, а также попробуем сделать простейшую форму поиска в Вордпресс.

Чем полезен поиск по сайту wordpress

Для пользователей поиск по сайту wordpress полезен:

  1. Возможностью найти интересующий их материал.
  2. Просмотром всех записей на одну и ту же тему на одном сайте.
  3. Можно просмотреть интересные материалы не покидая пределы сайта.

Для СЕО оптимизации поиск по сайту wordpress улучшает поведенческие факторы, увеличивает число просматриваемых страниц, а также удерживает пользователя на сайте.

Для вас, как владельцу сайта, поиск wordpress позволяет:

  1. Зацепить пользователя по одному запросу и удерживать до определенного момента.
  2. Увеличить число страниц сайта, если использовать правильные возможности ВП + СЕО.

WordPress форма поиска

к менюСамостоятельно сделать форму поиск в wordpress довольно не сложно, но есть несколько вариантов:

  1. использовать виджет поиска
  2. сделать форму самостоятельно.

Его можно добавить в область виджетов, вот так:

Но сегодня я расскажу вам о втором способе, как самостоятельно делается wordpress форма поиска.

В этом нет ничего сложного, вам достаточно закинуть в тему вот такой код:

Этот код можно закинуть в любое место темы, будь то это шапка сайдбар или футер.

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

Это самая простая wordpress форма поиска, если вам нужно настроить ей красивый вид или сделать ее в pop up нужно создать и настроить стили CSS. Этот момент я сейчас упускаю, возможно вернемся к нему когда то по позже.

Как вариант, форма поиска wordpress может выглядеть вот так:

Результаты поиска wordpress

к менюЗа вывод результатов поиска в WordPress теме отвечает файл search.php . Он обычно похож на index.php или category.php. Чтобы увидеть результаты поиска wordpress, можно воспользоваться простейшим кодом:

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

Настройка поиска wordpress: исключаем страницы

к менюБывает такая ситуация, что нужно исключить из поиска страницы (page), посты (post) или пользовательские / произвольные типы. Для этого можно воспользоваться волшебным кодом для изменения цикла WP и удаления страниц, постов и т. д. из результатов поиска.

Настройка поиска wordpress делается довольно просто, вот такой код может исключить все страницы из результатов поиска и выбрать только посты:

Если предположить что у вас есть произвольный / пользовательский тип записей «mypost» и мы хотим вывести в результатах поиска все посты и свой пользовательский тип, — достаточно написать вот такой код:

Важно: вставлять этот код нужно до вызова цикла, конкретно перед этим кодом в файле поиска search.php

Плагин поиска для wordpress

к менюВозвращаемся к нашим баранам, если вы все сделали правильно в предыдущих пунктах, то вы должны видеть в результатах поиска wordpress только строгие соответствия. Например, если у вас в тексте есть слово «вордпрес» и нет слова «вордпресс», то результат поиска по запросу «вордпресс» будет нулевым, то есть не будет найдено ни одного поста или страницы. К сожалению так устроен штатный поиск в wordpress.

Как же сделать более адекватный поиск по сайту wordpress? — нужно использовать плагин поиска для wordpress Relevanssi — A Better Search.

Настройки этого плагина я постараюсь описать в ближайшее время. Вкратце опишу только возможности этого плагина:

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

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

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

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

ez code

Просто о сложном.

Несколько способов улучшить поиск в WordPress

Встроенный поисковый движок WordPress — не самая сильная сторона этой популярной системы управления сайтом. В этой статье собраны несколько сниппетов, которые помогут улучшить поиск в WordPress.

Редирект на страницу поста, если только один найден

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

Отображение количества найденных записей в поиске WordPress

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

Для отображения количества найденных постов, откройте файл our search.php . Найдите строку:

Замените её этим:

Подсветка искомого текста в результатах поиска WordPress

Один из способов сделать поиск в WordPress более приятным и понятным — подсветка текста, который искал посетитель.

Для подсветки текста в поиске, откройте файл search.php найдите функцию the_title() . Замените её на строку:

И добавьте следующий код прямо перед этой строкой

Поиск wordpress по заголовку статьи.

Адаптация Сайта под ВСЕ разрешения экранов

Доброго времени суток. Меня зовут Михаил.

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

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

21 февраля 2013

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

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

Как же нам сделать поиск wordpress более правильным, чтобы он отдавал результаты, которые действительно хотел бы увидеть пользователь? На самом деле все очень просто. При правильном написании текстов мы всегда стараемся сделать акцент на заголовке статьи, так как именно он попадет в выдачу поисковых систем, и именно от него во многом зависит перейдет пользователь всемирной паутины на сайт или нет. То есть, исходя из этого, становится ясно, что поиск wordpress станет более релевантным, если будет искать именно по title наших постов. Осталось только осуществить задуманное.

Поиск wordpress только по заголовку (title) статьи. Первый способ.

Первый способ довольно простой. Для того, чтобы поправить поиск wordpress нам необходимо открыть файл query.php, который находится в папке wp-includes, с помощью текстового редактора, например NotePad++ и найти вот такую строку:

После этого, сохранить файл и залить его обратно на хостинг, использую например бесплатный ftp-клиент FilleZilla.

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

Топ-пост этого месяца:  Значимость визуального контекста в веб-дизайне

Поиск wordpress только по заголовку (title) статьи. Второй способ.

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

Итак, чтобы поиск wordpress начал искать по заголовку (title) статьи, нужно открыть в текстовом редакторе файл functions.php, который находится в wp-content/themes/Наша_тема и добавить в него следующую функцию:

После чего сохранить файл, и радоваться тому, что у нас все получилось

Важно! Данную функцию необходимо добавить до закрывающего тега ?> который находится в самом низу файла.

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

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

  1. Search Everything
  2. Search Unleashed (продвинутый плагин, для различных извращенных вариантов поиска).

На этом у меня все. Как видите, более правильный поиск wordpress сделать довольно просто. И любой посетитель вашего сайта сможет найти нужную информацию, используя поиск по заголовку (title) статьи. Не забывайте делать backup, перед редактированием файлов. И конечно же, обязательно подписывайтесь, вдруг я напишу еще, что-нибудь интересное

WordPress.org

Русский

Поддержка → Проблемы и решения → Как сделать постраничную навигацию c WP_Query ?

Как сделать постраничную навигацию c WP_Query ?

Использую nfrjq код (другой использовать нельзя)

как сделать постраничную навигацию?

ну и саму функцию вывода постраничной навигации не забудьте.

ну и саму функцию вывода постраничной навигации не забудьте.

а какую использовать в таком случае?
У меня сейчас

но она не работает так

а все , вместо $wp_query надо было $items указать. Спасибо !

в wordpress давно есть «родная» функция постраничной навигации — the_posts_pagination.
не обязательно использовать эти пережитки прошлого.

Flector (@flector)
А как должен выглядеть код для родной постраничной навигации?

там по ссылке куча примеров.

Если бы я разбирался в этом я бы не спрашивал.

если вам не понятно даже с примерами, то вам прямая дорога к платным специалистам

А зачем тогда нужен вообще этот форум? Не для помощи?

А зачем тогда нужен вообще этот форум? Не для помощи?

а как вам помочь то, если вы даже в готовом коде не разбираетесь?

А зачем тогда нужен вообще этот форум? Не для помощи?

знаете, есть такое понятие «порог вхождения»

а как вам помочь то, если вы даже в готовом коде не разбираетесь?

Да просто написать, вот этот код вставить в этот файл и все.

ну так по ссылке есть готовые коды.
берете и вставляете.
не нравится там — находите эту функцию в дефолтных темах и тупо копируете оттуда в свою тему.

Как улучшить поиск в WordPress

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

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

Поиск в WordPress с плагином Cherry Search

Итак, для начала скачайте плагин Cherry Search, установите его на свой сайт и активируйте. Кстати, дополнение разработано известными ребятами из TemplateMonster. Скачать его можно по ссылке ниже.

У плагина есть такие достоинства и возможности:

  • Полностью на русском языке, вполне качественный перевод.
  • «Живой» поиск – при вводе запроса появляются варианты из поисковой выдачи.
  • Возможно изменения внешнего вида формы поиска.
  • Настройка областей поиска.
  • Настройка поисковой выдачи.
  • Вывод формы поиска в любом месте сайта.

Из недостатков можно отметить один – отсутствует возможность морфологического поиска. То есть искаться будет абсолютно по тому запросу, который задан, без учёта падежа, числа и опечаток. Это один из главных недостатков поиска в WordPress, который в этом плагине, к сожалению, существует.

Теперь давайте настроим поиск в WordPress. Для этого перейдите в пункт «Cherry Search», который образовался в консоли после активации плагина. Вы увидите четыре пункта опций. Рассмотрю их по порядку.

Основные настройки. Здесь можно выключить опцию, которая заменяет стандартный виджет поиска WordPress. Кроме того здесь можно получить шоркоды, которые позволяет вывести форму в любом месте записи, страницы или темы. Есть возможности установить иконку для кнопки поиска, а также настроить надписи.

Настройка поискового запроса. Здесь можно настроить области, в которых будет осуществляться поиск в WordPress, исключить рубрики и теги, настроить результаты «живого» поиска и поисковой выдачи.

Визуальные настройки. Здесь можно включить/отключить отображение элементов, которые будут появляться по мере ввода запроса – миниатюры, заголовки, выдержки и прочее. Также здесь есть другие визуальные настройки «живого» поиска.

Уведомления. А здесь собраны опции уведомлений, которые отображаются, если поиск не дал результатов или если появилась ошибка.

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

WP Magazine

Про WordPress на русском языке

Основы WP_Query в WordPress

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

Что такое WP_Query

WP_Query — это класс, который позволяет разработчикам получать доступ к записям, страницам и произвольным типам данных в WordPress. При этом разработчикам не нужно самостоятельно писать сложные SQL запросы в базу данных, ведь WP_Query сделает это всё за нас.

Ниже приведён самый простой запрос с помощью класса WP_Query :

Таким образом WordPress сделает запрос в базу данных, чтобы получить наши записи из категории «news». Результаты запроса будут храниться в объекте $query , с которым мы будем работать с помощью специальных методов, наверняка знакомых вам:

С помощью метода have_posts() мы проверяем есть ли записи в буфере объекта $query , а с помощью метода the_post() мы берём одну запись из буфера и готовим её к выводу, делая доступными привычные нам функции the_title() , the_content() и другие.

После итерации над каждым объектом в буфере записей $query , метод have_posts() вернёт значение false и выйдет из нашего цикла while . Таким образом мы выведем заголовок и содержимое каждой статьи, полученной с помощью WP_Query .

Параметры WP_Query

Аргументом к запросу WP_Query может быть массив содержащий параметры запроса:

Или аналогичной строкой:

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

Существует огромное количество допустимых параметров в запросах WP_Query : категории, метки, типы записей, даты, авторы, таксономия, мета-данные и многое другое. Здесь мы попытаемся рассказать о самых важных и часто используемых параметрах.

Категории (рубрики)

Параметры категорий позволяют получить записи входящие (или не входящие) в определённую категорию или ряд категорий:

  • cat — число идентификатор определённой категории
  • category_name — название определённой категории (ярлык)
  • category__and — получить только те записи, которые присутствуют во всех категориях заданных данным массивом
  • category__in — получить записи, которые присутствуют хотя бы в одной из категорий заданных массивом
  • category__not_in — получить записи, которые не входят ни в одну из категорий заданных массивом

Например получить записи из категории с ярлыком (slug) «news»:

Получить записи, входящие в одну из категорий с идентификатором 10, 11 или 12. Получить идентификатор категории, имея её ярлык или название, можно с помощью функции get_term_by() .

Получить записи, входящие в одну из категорий с идентификатором 10, 11 или 12, но не входящие ни в одну из категорий с идентификатором 21 или 22:

Метки

Работа с параметрами меток (или тегов) в WP_Query мало чем отличается от категорий:

  • tag — получить записи с указанной меткой (ярлык)
  • tag_id — получить записи с указанной меткой с помощью идентификатора
  • tag__and — получить записи имеющие все указанные метки в массиве (идентификаторы)
  • tag__in — получить записи имеющие хотя бы одну метку из массива (идентификаторы)
  • tag__not_in — получить записи не имеющие ни одной из меток в массиве (идентификаторы)
  • tag_slug__and — получить записи имеющие все метки указанные в массиве (ярлыки)
  • tag_slug__in — получить записи имеющие хотя бы одну метку из указанного массива (ярлыки)

Например, получить записи имеющие метки с идентификаторами 11, 12 и 13, но исключить записи, которые имеют метки с идентификаторами 21, 22 или 23. Так же как и с категориями, получить идентификатор метки из её названия можно с помощью функции get_term_by() .

Записи, страницы и произвольные типы данных

С помощью WP_Query вы можете делать запросы на определённые записи, страницы и типы данных:

  • post_type — тип записи, по умолчанию post
  • post_status — статус записи, по умолчанию publish
  • p — идентификатор записи
  • page_id — идентификатор страницы
  • name — получить запись по её названию
  • pagename — получить страницу по её названию
  • post__in — получить записи, идентификатор которых входит в массив
  • post__not_in — получить записи, идентификатор которых не входит в массив

Например, получить черновики страниц и записей:

Получить страницу по адресу /about/contacts:

Получить все запланированные записи и записи на утверждении, кроме тех, которые указаны в массиве post__not_in :

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

Авторы

Для поиска записей по авторам существуют следующие параметры:

  • author — идентификатор автора
  • author_name — ярлык автора
  • author__in — записи авторов, указанных в массиве
  • author__not_in — все записи, кроме авторов, указанных в массиве

Например, получить записи авторов, указанных в массиве:

Получить записи текущего пользователя:

Поиск по ключевым словам и датам

Для поиска по ключевым словам и ограничения результатов по датам в WP_Query используются следующие параметры:

  • s — ключевое слово или фраза
  • year — год, например 2013
  • monthnum — порядковый номер месяца, от 1 до 12
  • w — номер недели, от 0 до 53
  • day — день, от 1 до 31
  • day — день, от 1 до 31
  • hour — час, от 0 до 23
  • minute — минута, от 0 до 60
  • second — секунда, от 0 до 60
  • m — год и месяц слитно, например 201311 (ноябрь, 2013)
Топ-пост этого месяца:  Как разделить язык для фронт-энда и для админ-панели в WordPress.

Начиная с WordPress версии 3.7, в WP_Query доступен новый параметр date_query , который позволяет выполнять запросы со сложными датами. Про работу с date_query и с классом WP_Date_Query читайте в нашей статье.

Пример поиска записей, содержащих ключевую фразу и опубликованных в 2013 году:

Порядок и пагинация

Для установления порядка вывода результатов в WP_Query используются следующие параметры:

  • order — DESC для сортировки по убыванию (по умолчанию) или ASC для сортировки по возрастанию
  • orderby — поля, по которым производить сортировку, например (список не полный):
    • date — по дате публикации (по умолчанию)
    • ID — по уникальному идентификатору записи
    • title — по заголовку записи
    • rand — в случайном порядке
    • comment_count — по количеству комментариев
    • post__in — в соответствии с заданным массивом

Для пагинации в WP_Query используются всего два основных параметра:

  • posts_per_page — количество записей на каждую страницу
  • paged — номер страницы

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

Этот же запрос со следующими тремя записями:

Кстати, чтобы получить все записи, можно указать -1 в качестве параметра posts_per_page . Делать это не желательно, поскольку записей может оказаться больше чем вы ожидаете, и серверу может не хватить памяти для их обработки и хранения.

Так же следует отметить, что прилепленные записи (sticky posts) добавляются автоматически в начало возвращаемых результатов WP_Query . Если вы хотите получить результаты без учёта прилепленных записей, воспользуйтесь параметром ignore_sticky_posts .

Работа с мета-данными и таксономией

Для запроса записей по мета-данным (произвольным полям) или терминам, в WP_Query существуют два основных параметра: meta_query и tax_query . О том, как ими пользоваться мы расскажем в отдельной статье.

Использование WP_Query в темах и плагинах

Важно понимать, что при создании нового объекта класса WP_Query мы делаем очередной запрос в базу данных, и при этом он никак не влияет на наш основной запрос, который WordPress выполняет при загрузке любой страницы. Это касается как WP_Query , так и функций get_posts() и query_posts() , которые всего лишь оборачивают обращение к WP_Query .

Рассмотрим простую ситуацию:

В первом обращении функция the_title() выведет заголовок статьи из нашего основного цикла, а второе обращение — из вторичного цикла, хотя функция одна и та же. За это отвечает вызов метода the_post() , который не только делает «шаг в цикле», но и готовит глобальную переменную $post для работы с функциями the_title() , the_content() и прочими.

Именно поэтому, если слегка изменить наш код:

Мы получаем, на первый взгляд, совершенно непредсказуемый результат. Третий вызов функции the_title() выведет заголовок последней записи из вторичного цикла, несмотря на то, что вызов функции находится за пределами этого цикла.

Дело в том, что вызов the_post() изменил нашу глобальную переменную $post для работы с данными вторичного цикла, а после завершения цикла мы так и не вернули данные на свои места. В нашем случае это вполне очевидно, но что если после блока со схожими записями у нас располагается блок комментариев, или блок «поделиться»?

Функция wp_reset_postdata()

Функция wp_reset_postdata() устанавливает глобальную переменную $post в её исходное значение: текущая запись основного цикла. Использовать данную функцию следует сразу же после завершения нашего вторичного цикла:

Поэтому при использовании вторичных циклов в ваших темах и плагинах не забывайте возвращать глобальную переменную $post в её исходное значение. А если вы изменили глобальную переменную $wp_query (что делать не рекомендуется), например с помощью функции query_posts() , её можно вернуть в исходное значение с помощью функции wp_reset_query() .

Пример простого плагина

Для полноценного примера, предлагаем рассмотреть простой плагин, который добавляет блок с пятью последними записями к содержимому каждой статьи:

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

» data-medium-file=»https://wpmag.ru/wp-content/uploads/sites/13/2013/11/wordpress-latest-posts-300×108.png» data-large-file=»https://wpmag.ru/wp-content/uploads/sites/13/2013/11/wordpress-latest-posts.png» src=»https://wpmag-22.cdn.pjtsu.com/wp-content/uploads/sites/13/2013/11/wordpress-latest-posts.png?w=780″ alt=»Последние записи с помощью WP_Query» w />

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

После того, как вы освоили основы работы с классом WP_Query , мы советуем ознакомиться с его остальными методами и переменными, например get_query_var() , get_queried_object() , $found_posts , $query_vars и другие. Если вам интересно узнать, как именно работает WP_Query , загляните в файл wp-includes/query.php.

Если у вас возникли вопросы при работе с WP_Query , оставьте комментарий и мы обязательно вам ответим.

10 плагинов WordPress для поиска по сайту

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

Бесплатные плагины

Этот плагин заменяет стандартную систему поиска WordPress на систему, которая работает с частичными совпадениями, сортируя результаты поиска по релевантности. Плагин также индексирует комментарии. Premium-версия плагина поддерживает WordPress Multisite.

Основные особенности плагина:

  • результаты поиска сортируются в порядке релевантности, а не по дате;
  • работает с нечеткими совпадениями: соответствие частичных слов, если полные слова не совпадают;
  • поиск документов, которые соответствуют только одному слову из поискового запроса или по всем словам запроса;
  • подсветка условий поиска в документе, когда пользователь просматривает результаты поиска;
  • поиск комментариев, тэгов, категорий и многое другое;
  • возможность регулировать вес заголовков, тэгов и комментариев;
  • сохранение истории запросов: отображение самых популярных и последних запросов;
  • использование предположений «Возможно, вы имели в виду…?», основанные на успешном поиске пользователей;
  • расширенные возможности фильтрации;
  • ограничение результатов поиска для повышения производительности больших баз данных.

Стоимость: бесплатно, но есть платная Premium-версия.

Standard — $49,95 в год. Включает использование плагина для неограниченного количества личных сайтов, а также поддержку и обновления на год.
Developer — $79,95 в год. Включает использование плагина для неограниченного количества личных, клиентских и коммерческих сайтов, а также поддержку и обновления на год.
Permanent — $219,95, разовая оплата. Включает использование плагина для неограниченного количества личных, клиентских и коммерческих сайтов, а также поддержку и обновления пожизненно.

Больше деталей на сайте разработчиков https://www.relevanssi.com/

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

Техника “живого поиска” означает, что большинство людей смогут найти то, что они ищут, еще до того, как закончат вводить свой запрос. Это экономит время пользователей на поиск нужной им информации.

Плагин заменит стандартную поисковую систему WordPress усовершенствованной системой поиска, которая сортирует результаты по релевантности. Плагин совершает поиск по постам, заголовкам, страницам и другим пользовательским типам постов.

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

  • результаты поиска интегрированы в вашу тему без необходимости настройки пользовательских шаблонов поиска;
  • результаты поиска автоматически сортируются по релевантности. Если отключить поиск на основе релевантности, результаты будут сортироваться по дате;
  • точная настройка результатов путем изменения весов заголовка поста и его контента;
  • доступна тепловая карта, которая отображает самые популярные запросы на вашем сайте;
  • работает с кэширующими плагинами, например, WP-Super-Cache и W3 Total Cache.

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

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

Этот плагин позволяет использовать систему поиска Sphinx Search Server, заменяя базовую систему WordPress на улучшенную систему для более быстрого и релевантного поиска. Особенно это актуально для больших WordPress-сайтов.

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

Этот плагин — самый простой способ интегрировать систему поиска Google в ваш WordPress-сайт. Вам необходимо будет лишь зарегистрироваться на Google Custom Search, получить Google Search Engine ID и добавить его в настройки плагина. После этого вы сможете добавить виджет поиска Google в боковую панель.

Искать можно как веб-страницы, так и изображения. Настройки позволяют ограничить поиск только вашим сайтом или осуществлять его по всему интернету. Кроме этого, вы можете определить внешний вид поиска, его возможности и многое другое. Результаты поиска могут отображаться в обычном или всплывающем окне.

Плагин улучшает стандартную систему поиска WordPress путем интеграции с Amazon CloudSearch. Учитывает даты и метаданные при осуществлении поиска, пользовательские типы постов, поисковые запросы и прочее. Для использования плагина, необходима регистрация на Amazon CloudSearch.

Платные плагины

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

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

Стоимость пакетов:
Single — $79/год. Включает лицензию для 1 сайта, 1 год поддержки и обновлений, а также все официальные расширения.
Business — $149/год. Включает лицензию для 5 сайтов, 1 год поддержки и обновлений, а также все официальные расширения.
Developer — $299/год. Включает лицензию для неограниченного количества сайтов, 1 год поддержки и обновлений, а также все официальные расширения.

Этот плагин улучшает функциональность вашего базового поиска WordPress. Осуществляет поиск по разделам, страницам и постам. Совместим с WooCommerce по поисковым фразам, выдающихся в результатах поиска. Поддерживает использование виджетов и шорткодов.

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

Стоимость: $21/$105 в зависимости от типа лицензии.

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

Стоимость: $29/$150 в зависимости от типа лицензии.

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

У нас есть и другие подборки плагинов для WordPress:

Добавить комментарий