Авг
7
7

Хаки для поиска 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 ...

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

Комментариев - 7 к статье “Хаки для поиска 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));

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


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

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

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

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

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

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