WordPress как на ладони

Убрать таксономию с главной

Подскажите как убрать посты из раздела таксономии с главной

По аналогии с вот этим вариантом для категорий

if (have_posts()) : query_posts($query_string .'&cat=-1675'); while (have_posts()) : the_post();
0
lethalblo
1.3 года назад 15
  • 0
    Kama9616

    https://wp-kama.ru/hook/pre_get_posts#example_36815

    lethalblo 1.3 года назад

    Спасибо, как убрать категорию с этим я разобрался, я хочу по такому же принципу убрать таксономию

    Kama 1.3 года назад

    По такому же принципу ты можешь использовать здесь эти параметры: https://wp-kama.ru/function/wp_query#taxonomies

    lethalblo 1.3 года назад

    Ну что-то не выходит

    Вот такой вариант слепил, результат нулевой

    $query->set( 'taxonomy=razdel&field=id&terms=1675&operator=NOT IN');
    Kama 1.3 года назад

    Ты где такие примеры в виде строки параметров нашел в документации pre_get_posts? Массивом надо такое указывать!

    $query->set( 'tax_query', [
    	[
    		'taxonomy' => 'people',
    		'field'    => 'slug',
    		'terms'    => 'bob'
    	]
    ] );

    Ну везде же в примерах в $query->set() передается два параметра ключ и значение. Ну как можно так писать-то и ожидать результат, как можно не попробовать сделать как в примерах? Ужас...

    lethalblo 1.3 года назад

    Добавил

    if ( is_home() ) 

    вместо

    if ( $query->is_front_page() && $query->is_main_query() ) 

    Также добавил

    'operator' => 'NOT IN',

    Вот такой вариант сработал

    add_action( 'pre_get_posts', 'exclude_category_on_front_page' );
    
    function exclude_category_on_front_page( $query ) {
    
    if ( is_home() ) {      
    $query->set( 'tax_query', [
    	[
    		'taxonomy' => 'razdel',     
    		'field'    => 'id',
    		'terms'    => array( 1675 ),
    		'operator' => 'NOT IN',
    	]
    ] );        
    	}
    }

    За помощь спасибо.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация