Исключать страницы из страницы результатов поиска WordPress
Как я могу исключить страницы для зарегистрированных пользователей из результатов поиска WordPress?
3 answers
Добавьте это в файл функций дочерних тем с помощью редактора кода, такого как Notepad++.
Вам нужно будет изменить идентификационные данные страницы в коде на свои собственные.
Исключать Определенные Страницы Из Результатов Поиска
add_filter( 'pre_get_posts', 'exclude_pages_search_when_logged_in' );
function exclude_pages_search_when_logged_in($query) {
if ( $query->is_search && is_user_logged_in() )
$query->set( 'post__not_in', array( 1, 2, 3, 4, 5 ) );
return $query;
}
Исключить Все Страницы Из Результатов Поиска
add_action('pre_get_posts','exclude_all_pages_search');
function exclude_all_pages_search($query) {
if (
! is_admin()
&& $query->is_main_query()
&& $query->is_search
&& is_user_logged_in()
)
$query->set( 'post_type', 'post' );
}
Добавьте следующий код в свою тему functions.php файл
Он отлично работает на сайте моего клиента.
//Exclude all except post from WordPress Search
if (!is_admin()) {
function wse_search_filter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','wse_search_filter');
}
Вы можете использовать этот код в своей теме functions.php
. Обратите внимание, что я этого не проверял.
add_filter( 'pre_get_posts', 'SearchFilter' );
function SearchFilter( $query ) {
if ( $query->is_search ) {
$query->set( 'post__not_in', array( 2, 5, 12, 14, 20 ) );
}
return $query;
}
Я получил идею от WPBeginner.
Условия использования, в то время как это было написано: "(...) Вы можете ссылаться на наши фрагменты и хаки в своих собственных блогах/сайтах, если вы полностью доверяете нам из этой статьи.