Можно добавить подобный фрагмент в functions.php
активной темы:
function exclude_categories_from_search( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
if ( $query->is_search() ) {
$query->set( 'category__not_in', array( 1, 2, 3 ) ); // ID рубрик
}
}
add_action( 'pre_get_posts', 'exclude_categories_from_search' );
Как вариант — плагин Simply Exclude С его помощью можно отрегулировать вывод отдельных рубрик, меток, записей не только в поиске, но и на страницах сайта
Подробно об этом
Спасибо код работает, но плагин (Dave’s WordPress Live Search) продолжает выводить посты из заблокированных рубрик. При этом в самом плагине есть функция, в которой можно заблокировать рубрики, только безрезультатно пробовал по разному все равно выводит…
Вот этот код с плагином работает и выполняет роль исключения страниц, возможно можно как-то подкорректировать код предназначенный для исключения постов в выбранных рубриках…
function search_posts_only($where) {
global $wp_query, $wpdb;
if ( !empty($wp_query->query_vars['s']) ) {
$where .= " AND $wpdb->posts.post_type != 'page'";
}
return $where;
}
add_filter('posts_where', 'search_posts_only');