Intereting Posts

Мне нужно исключить из запроса категорию и несколько пользовательских таксономий

Мне нужно исключить из запроса категорию и несколько пользовательских таксономий.

Правильно ли этот код? Этот запрос не исключает какой-либо пост, тот, у кого есть категория, или пользовательская таксономия. Что я делаю не так?

<?php $args = array( 'post_type' => 'post', 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'ubicacion', 'field' => 'slug', 'terms' => array( 'ruperto-concha', 'estallido', 'vineta', 'vitrina', 'letrero', 'plenoempleo', 'primero' ), 'operator' => 'NOT IN' ), array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array( 'las-informasiones' ), 'operator' => 'NOT IN' ) ) ); $query = new WP_Query( $args ); ?> 

Примечание. Мне нужно исключить пост с этой категорией или с любой из этих пользовательских таксономий. Любое из обоих условий.

Извините за плохой английский.

ОБНОВИТЬ

Я намеревался использовать этот код

 <?php $args = array( 'post_type' => 'post', 'tax_query' => array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array( 'las-informasiones' ), 'operator' => 'NOT IN' ) ); $query = new WP_Query( $args ); ?> 

даже это:

 <?php $args = array( 'post_type' => 'post', 'tax_query' => array( 'taxonomy' => 'category__not_in', 'field' => 'slug', 'terms' => array( 'las-informasiones' ), ) ); $query = new WP_Query( $args ); ?> 

и, нет. В wp есть некоторая проблема с wp-запросом и категориями? Кто-нибудь знает?

ИНФОРМАЦИЯ О MOAR

Это мой собственный налоговый код. Я использовал автоматический генератор.

 function register_taxonomy_ubicacion() { $labels = array( 'name' => _x( 'Ubicaciones', 'ubicacion' ), 'singular_name' => _x( 'Ubicación', 'ubicacion' ), 'search_items' => _x( 'Hurgar en ubicaciones', 'ubicacion' ), 'popular_items' => _x( ' Ubicaciones más usadas', 'ubicacion' ), 'all_items' => _x( 'Todos', 'ubicacion' ), 'parent_item' => _x( 'Parent Ubicación', 'ubicacion' ), 'parent_item_colon' => _x( 'Parent Ubicación:', 'ubicacion' ), 'edit_item' => _x( 'Editar', 'ubicacion' ), 'update_item' => _x( 'Actualizar Ubicación', 'ubicacion' ), 'add_new_item' => _x( 'Añadir Ubicación', 'ubicacion' ), 'new_item_name' => _x( 'Nueva Ubicación', 'ubicacion' ), 'separate_items_with_commas' => _x( 'separelas con comas', 'ubicacion' ), 'add_or_remove_items' => _x( 'Añadir o remover ubicación', 'ubicacion' ), 'choose_from_most_used' => _x( 'Escoger de las más usadas', 'ubicacion' ), 'menu_name' => _x( 'Ubicaciones', 'ubicacion' ), ); $args = array( 'labels' => $labels, 'public' => true, 'show_in_nav_menus' => true, 'show_ui' => true, 'show_tagcloud' => false, 'show_admin_column' => true, 'hierarchical' => false, 'rewrite' => true, 'query_var' => true ); register_taxonomy( 'ubicacion', array('post'), $args ); } 

Solutions Collecting From Web of "Мне нужно исключить из запроса категорию и несколько пользовательских таксономий"

Измените 'relation' => 'OR' на 'relation' => 'AND' чтобы применить оба исключения к всем возвращенным сообщениям. Это может показаться нелогичным, но сообщение, которое удовлетворяет одному из исключений, будет включено, даже если оно не удовлетворяет другому.

РЕДАКТИРОВАТЬ

Из кода, связанного в вашем комментарии ниже, это генерируемый запрос:

 SELECT SQL_CALC_FOUND_ROWS duk_posts.ID FROM duk_posts WHERE 1=1 AND 0 = 1 AND duk_posts.post_type = 'post' AND (duk_posts.post_status = 'publish' OR duk_posts.post_status = 'private') GROUP BY duk_posts.ID ORDER BY duk_posts.post_date DESC LIMIT 0, 10 

как вы можете видеть, нет ничего, что связано с категорией или таксономией, а WHERE является недопустимым условием, которое никогда не могло быть правдой. Это заставляет меня думать, что ваша пользовательская таксономия не регистрируется правильно, поэтому при запуске запроса она рассматривается как недействительная таксономия и поэтому создает этот недопустимый запрос. Я угадаю, что вы регистрируете таксономию на неправильном крючке или как-то ошибаетесь.