Авг
7
8

Хаки для поиска wordpress и категорий

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

Исключаем страницы из поиска

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

Для этого заходим в файл function.php где размещаем код:

function searchExcludePages($query) {
	if ($query->is_search) {
		$query->set('post_type', 'post');
	}
 
	return $query;
}
 
add_filter('pre_get_posts','searchExcludePages');

Сохраняем его и проверяем корректность работы.

Исключение категорий из результатов поиска

Для тех, кто активно торгует ссылками я когда-то публиковал пост с советами по работе в GoGetLinks и wordpress, который позволял уменьшить «видимость» рекламных материалов для обычных посетителей сайта — исключить продажные заметки из RSS, главной страницы, последних постов, навигации и т.п. С помощью следующего кода вы сможете убрать категории, где выводятся GGL посты, из результатов поиска.

Вам просто нужно в файл function.php вместе с указанным выше кодом добавить еще один параметр. Причем для версии ниже wordpress 3.1 используется:

              $query->set('cat','-2,-5');

А если у вас более новая, то попробуйте указать:

             $query->set('category__not_in','2,5');

То есть в итоге для исключения страниц и ненужной вам категории пишем:

function searchExcludePages($query) {
	if ($query->is_search) {
		$query->set('post_type', 'post');
		$query->set('category__not_in','117');
	}
 
	return $query;
}
 
add_filter('pre_get_posts','searchExcludePages');

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

Отображение в поиске только выбранные категории

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

Как бы там ни было вам пригодится следующий код. Как и в прошлом варианте, для версии до WordPress 3.1 он отличается от старших релизов и выглядит так:

        $query->set('cat','2,5');

Если система «постарше» используется другой код:

        $query->set(category__in,'2,5');

Итого получаем код:

 function searchcategory($query) {
	if ($query->is_search) {
		$query->set(category__in,'2,5');
	}
 
	return $query;
}
 
add_filter('pre_get_posts','searchcategory');

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

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 6, средний балл: 6,83 из 7)
Loading ... Loading ...

категория Категории: Хаки и секреты;
теги Теги: , , , , , .
Заработай на сайте

Комментариев - 8 к статье “Хаки для поиска wordpress и категорий”

  • blogrub.ru   08.08.2012

    Сначала подумал что статья про Хакеров :)

  • personNet   13.08.2012

    Хд, я тоже так подумал

  • Artem   27.09.2012

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

  • Tod   28.09.2012

    Artem, возможно, есть и такая опция — надо изучать функцию поиска, я не разбирался в этом.

  • Olunka   25.10.2012

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

  • Tod   26.10.2012

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

  • Denis   27.09.2014

    Не совсем верно работает исключение нескольких категорий.
    Работает нормально с таким кодом
    $query->set(‘category__not_in’,array(10,11,12));

  • beklem25   11.11.2016

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

Оставить комментарий


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

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

Последние посты
Облако тегов
Лучшее в категории
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Loading ... Loading ...
Друзья проекта
Последние новости