Cómo excluir una taxonomía personalizada del bucle de entradas
¿Existe una manera simple o fácil de excluir todas las entradas de una taxonomía personalizada en el bucle? He estado buscando por todas partes, y ni SE, SO o Google parecen tener una respuesta directa.
Sé que se puede hacer a través de una consulta WPDB, pero eso parece demasiado complicado para algo que debería ser bastante simple.

La solución a esto no es muy conocida, pero debería serlo.
Puedes hacer lo siguiente:
$args['tax_query'] = array(
array(
'taxonomy' => 'category',
'terms' => array('cat', 'dog'),
'field' => 'slug',
'operator' => 'NOT IN',
),
);
query_posts($args);
El argumento operator puede tomar otros valores, pero el código anterior básicamente dice: obtener todas las publicaciones de la taxonomía 'category' que no tengan los términos 'cat' o 'dog'.

Inteligente. Pero aún tendría que ingresar manualmente cada término en esa taxonomía, ¿correcto?

No te sigo, lo siento. En el array de términos, defines los valores de los términos que quieres excluir de tu consulta de loop. Si quisieras que fueran dinámicos, quizás podrías agregar un meta valor personalizado a cada post y luego verificar el valor de esa meta clave en tu consulta y configurarlo de esa manera si es a lo que te refieres.

Querrás usar el operador NOT EXISTS
junto con pasar el slug de la taxonomía, lo que le indica a la consulta que no incluya ninguna de las categorías seleccionadas de tu taxonomía personalizada dentro del bucle.
Para excluir todas las entradas que estén en la taxonomía "fruit" (sin importar el tipo de fruta), aquí está el fragmento:
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'fruit',
'operator' => 'NOT EXISTS'
)
)
);
$query = new WP_Query( $args );

Parece que esto debería ser más eficiente que decir NOT IN
para XX número de terms
. Esa lista de términos podría crecer mucho, pero esto debería cubrir todos los términos con el nombre de esa taxonomía.

Aunque esta es la respuesta a la pregunta del OP (votada arriba), la mayoría probablemente queremos excluir un término o conjunto de términos específicos. Para eso, querrás esta respuesta.

Aquí te mostramos cómo hacerlo para tipos de entradas personalizadas y taxonomías personalizadas:
$happening = new WP_Query(
array(
'post_type' => 'news', // solo consultar el tipo de entrada News
'tax_query' => array(
array(
'taxonomy' => 'news-cat',
'field' => 'slug',
'terms' => 'media', // excluir elementos de media en la taxonomía personalizada news-cat
'operator' => 'NOT IN')
),
)
);
Esto funcionó perfectamente para excluir una taxonomía personalizada de un tipo de entrada personalizada.. Solo quería agregar el código del bucle de consulta para completar el fragmento: while ( $the_query->have_posts() ) : $the_query->the_post();

query_posts( array(
'post_type' => 'listados', // Tipo de publicación: listados
'tax_query' => array(
array(
'taxonomy' => 'estado', // Taxonomía: estado
'field' => 'slug', // Campo a comparar: slug
'terms' => 'vendido', // Términos a excluir: vendido
'operator' => 'NOT IN' // Operador: NO INCLUIR
),
)
)
);
Este código excluye los listados con estado => vendido del tipo de publicación => listados

Hice lo siguiente para excluir posts de un término de taxonomía específico:
$argos = array(
'tax_query' => array (
array(
'taxonomy' => 'topics', // Mi taxonomía personalizada
'terms' => 'college', // El término de taxonomía que quería excluir
'field' => 'slug', // Si estoy pasando el Slug del término o el ID del término
'operator' => 'NOT IN', // Operador de selección - usar IN para incluir, NOT IN para excluir
),
),
'post_type'=>'page', // Tipo de post que quiero mostrar, puede ser un custom post type también
'posts_per_page' => -1,
'orderby' => 'title',
'order'=>'ASC',
'post_parent' =>$post->ID // mostrar posts o páginas hijas de la página/post actual
);
$query = new WP_Query( $args );

Utilizo el "Plugin de WordPress 'Category Visibility' de RYO" que parece funcionar bastante bien.
Puedes decidir en una página de administración qué categorías son visibles o están excluidas de varias áreas.
http://ryowebsite.com/wp-plugins/category-visibility/
-Adam
