Как исключить определенные страницы, авторов и многое другое из поиска WordPress
Приветствуем вас! Зачем исключать элементы из поиска WordPress? Функция поиска WordPress по умолчанию показывает результаты всех сообщений, страниц и пользовательских типов записей. Это приемлемо для большинства сайтов и не влияет на SEO или производительность.
Однако, если у вас работает интернет-магазин, то найдутся некоторые страницы, которые вам не хотелось бы видеть в поисковой выдаче. Например, страница «заказ», страница «моя учетная запись» или «спасибо» после успешной загрузки.
Также можно скрыть категории или таксономии, или сообщения от конкретных авторов. Оптимизация вашего «Поиска» за счет исключения ненужных элементов улучшает пользовательский опыт и улучшает удобство использования вашего сайта.
Ну что, давайте посмотрим, как легко исключить исключить определенные страницы, посты, авторов, категории и многое другое из результатов поиска WordPress.
1 Исключение определенных записей, страниц и пользовательских типов записей из поиска
Первое, что вам нужно сделать, это установить и активировать поиск плагин «search-exclude». После активации отредактируйте публикацию, страницу или пользовательский «Тип записи», который вы хотите исключить из результата поиска. На экране редактирования появится окно исключения поиска.
Просто установите флажок «исключить из результатов поиска» и не забудьте сохранить свой пост / страницу. Этот конкретный пост / страница больше не будет отображаться в результатах поиска.
Чтобы просмотреть все предметы, которые были исключены из поиска, перейдите в «Настройки» — «поиск исключить страницы». Здесь вы увидите список элементов, которые вы исключили.
Если вы хотите убрать ограничение, просто снимите флажок рядом с элементом, который вы хотите добавить обратно и нажмите на кнопку «Сохранить изменения».
2. Исключить определенную категорию, тег, пользовательскую таксономию из поиска WordPress
Здесь мы будем добавлять код на ваш сайт. Во-первых, вам нужно найти ID категории, которую вы хотите исключить. Далее необходимо добавить следующий код в functions.php файл вашей темы.
function wpb_search_filter ( $query ) { if ( $query->is_search && !is_admin () ) $query->set ( 'cat','-7' ); return $query; } add_filter ( 'pre_get_posts', 'wpb_search_filter' );
Не забудьте заменить «7» на ID категории, которую вы хотите исключить.
Теперь предположим, что вы хотите исключить несколько категорий. Это то, как вы будете изменять код, чтобы исключить несколько категорий.
function wpb_search_filter ( $query ) { if ( $query->is_search && !is_admin () ) $query->set ( 'cat','-7, -10, -21' ); return $query; } add_filter ( 'pre_get_posts', 'wpb_search_filter' );
Мы просто добавили ID категорий, которые мы хотим исключить через запятую.
Исключить определенные теги из поиска WordPress
Если вы хотите исключить записи, под определенным тегом, то вы можете использовать следующий код.
if ( $query->is_search && !is_admin () ) $query->set ( 'tag','-19' ); return $query; } add_filter ( 'pre_get_posts', 'wpb_search_filter' );
Не забудьте заменить «19» на ID тега, который вы хотите исключить.
Аналогичным образом можно изменить код, чтобы исключить несколько тегов.
if ( $query->is_search && !is_admin () ) $query->set ( 'tag','-19, -27, -56' ); return $query; } add_filter ( 'pre_get_posts', 'wpb_search_filter' );
Исключение определенных терминов в пользовательской таксономии из поиска
Если вы хотите исключить термин в пользовательской таксономии, то вам нужно будет добавить следующий код.
function wpb_modify_search_query ( $query ) { global $wp_the_query; if ( $query === $wp_the_query && $query->is_search () ) { $tax_query = array ( array ( 'taxonomy' => 'genre', 'field' => 'slug', 'terms' => 'action', 'operator' => 'NOT IN', ) ); $query->set ( 'tax_query', $tax_query ); } } add_action ( 'pre_get_posts', 'wpb_modify_search_query' );
Не забудьте заменить «genre (Жанр)» пользовательской таксономией и «действие (action)» термином, который вы хотите исключить.
3. Исключить конкретного автора из поиска WordPress
Если вы хотите исключить записи, созданные определенным автором, то есть два способа сделать это. Если у автора есть всего несколько постов, и вы уверены, что они не будут добавлять больше постов, то вы можете просто использовать первый метод в этой статье, чтобы исключить свои посты из поиска.
Однако, если есть много сообщений, написанных автором, то вы можете использовать следующий код.
function wpb_search_filter ( $query ) { if ( $query->is_search && !is_admin () ) $query->set ( 'author','-24' ); return $query; } add_filter ( 'pre_get_posts', 'wpb_search_filter' );
Не забудьте заменить «24» идентификатором пользователя автора, которого вы хотите исключить.
Можно также использовать один и тот же код для исключения нескольких авторов, добавляя их идентификаторы пользователей через запятую.
function wpb_search_filter ( $query ) { if ( $query->is_search && !is_admin () ) $query->set ( 'author','-24, -12, -19' ); return $query; } add_filter ( 'pre_get_posts', 'wpb_search_filter' );
Мы надеемся, что эта статья помогла вам узнать, как исключить конкретные страницы, авторов и многое другое из WordPress поиска. Ну что, у нас на этом все. Всем пока!
С уважением Вячеслав и Валерия!
Можно все эти страницу исключить с помощью кода, но это не каждому под силу. Если в кодах не разбираешься, то лучше воспользоваться плагином.
Огромное спасибо за полезную информацию
Благодарю за помощь в этом вопросе, теперь я буду знать.