Окт
5
2

Плагин Search Exclude — исключаем страницы/посты из поиска

Плагин Search ExcludeВо время работы над одним проектом для улучшения результатов поиска нужно было исключить оттуда несколько записей. Это могут быть как конкретные «неугодные вам» страницы/посты, так и весьма тривиальные элементы сайта: контакты, главная, об авторе, sitemap и т.п. Данная задача решается двумя способами: с помощью хака или через плагин Search Exclude.

Если сайтом будет управлять начинающий пользователей и ему потребуется достаточно часто обновлять список исключенных статей, то конечно, лучше устанавливать модуль. Для разовых манипуляций и продвинутых юзеров можно использовать следующий сниппет (размещается в function.php):

function myexclude_search_filter( $query ) {
  if ( ! $query->is_admin && $query->is_search && $query->is_main_query() ) {
    $query->set( 'post__not_in', array( 1042, 756 ) );
  }
}
add_action( 'pre_get_posts', 'myexclude_search_filter' );

Чуть более детально он описан в заметке про хаки для поиска + там есть парочка других полезных решений. Числа в коде — ID соответствующих публикаций.

Настройка Search Exclude

Вариант с модулем более наглядный. Скачиваете его отсюда либо же находите по названию и устанавливаете из админки. Плагин максимально простой, поэтому после его активации никаких дополнительных общих настроек делать не нужно. При этом на каждой странице/посте появится дополнительный блок опций «Search Exclude» при редактировании.

Настройка Exclude from Search Results

Здесь находится одно единственное поле «Exclude from Search Results». Если поставить галочку в данном блоке, то запись не будет участвовать в поиске и, следовательно, в результатах ее не увидите. Судя по описанию модуля, данная опция работает и для других WordPress таксономий, не только постов/страниц.

Интересно также, что скрытие заметок из поиска поддерживает массовое редактирование в системе вордпресс. Отмечаете несколько нужных страниц, выбираете в качестве действия «Изменить» и устанавливаете соответствующий параметр в опции «Show in Search Results».

Массовое задание параметров в Search Exclude

Здесь значение Hide — это скрыть из поиска, Show — показывать в результатах. После внесение изменений кликаете по кнопке «Обновить». Для всех выбранных заметок будет установлен одинаковый параметр.

Дополнительные фишки по Search Exclude

Напоследок пару нюансов из FAQ по модулю. Во-первых, следует заметить, что Search Exclude никак не влияет на поисковую оптимизацию (не исключает страницы из индекса), а только модифицирует результаты стандартного поиска на вашем сайте. Во-вторых, у плагина есть 2 хука/фильтра:

  • searchexclude_hide_from_search — определяет видимость конкретного объекта;
  • searchexclude_filter_search — позволяет отключить фильтрацию результатов поиска.

Эти 2 решения больше полезны для разработчиков. Приведу лишь пример использования их в резальных условиях.

Пример1 (для searchexclude_hide_from_search). Допустим, вы хотите чтобы опция «Exclude from Search Results» была автоматически активирована для всех новых создающихся постов (не страниц). Вот подходящий код для function.php.

add_filter('default_content', 'excludeNewPostByDefault', 10, 2);
function excludeNewPostByDefault($content, $post)
{
    if ('post' === $post->post_type) {
        do_action('searchexclude_hide_from_search', array($post->ID), true);
    }
}

Пример2 (для searchexclude_filter_search). Предположим, вы захотели отключить фильтр для результатов поиска по определенному типу постов (post_type). Вам потребуется следующий код:

add_filter('searchexclude_filter_search', 'filterForProducts', 10, 2);
function filterForProducts($exclude, $query)
{
    return $exclude && 'product' !== $query->get('post_type');
}

Но, повторюсь, в большинстве случаев рядовому пользователю будет достаточно обычного блока настроек на конкретной странице/посте. Модуль Search Exclude не должен вызвать у вас каких-либо сложностей. Если остались вопросы, пишите их в комментариях. Также могу посоветовать плагин Ultimate Category Excluder, позволяющий скрыть рубрики WordPress не только из поиска, но и с главной/архивов, если это нужно.

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

категория Категории: Плагины;
теги Теги: , , , .

комментария 2 к статье “Плагин Search Exclude — исключаем страницы/посты из поиска”

  • Александр   27.12.2019

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

  • Tod   29.12.2019

    Александр, не совсем понял, что значит дубль поста? с помощью SEO Yoast вы можете запретить индексирование страниц-архивов по категориям/тегам чтобы тексты статьи были доступны только на единичной ее страницы, но с главной так не получится. Можете просто на главной выводить заголовок постов без анонса либо делать уникальный анонс (при редактировании постов есть отдельное поле с анонсом).

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


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

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

Поиск:
Последние посты
Лучшее в категории

Облако тегов
Скажи свое мнение!

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

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

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