Поддержка Проблемы и решения Исключить рубрики из поиска

  • Подскажите как заблокировать вывод постов с некоторых рубрик, в стандартном поиске WP. Заранее спасибо

    [Тема переименована для большей информативности.]

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно добавить подобный фрагмент в 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');
Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Исключить рубрики из поиска» закрыта для новых ответов.