¿Cómo excluyo una taxonomía personalizada del bucle posterior?

16

¿Existe una forma simple o fácil de excluir todas las publicaciones de una taxonomía personalizada en el ciclo? He estado buscando alto y bajo, y ni SE, SO ni Google parecen tener una respuesta directa.

Sé que se puede hacer a través de una consulta de WPDB, pero eso parece una cuerda masiva para saltar por algo que debería ser bastante simple.

    
pregunta Thomas 16.03.2011 - 15:50

6 respuestas

8

Desearía usar el operador NOT EXISTS junto con pasar la bala de taxonomía, que le indica a la consulta que no incluya ninguna categoría seleccionada de su taxonomía personalizada dentro del bucle.

Para excluir todos los mensajes que están en la taxonomía "fruta" (independientemente del 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 );
    
respondido por el aniskhan001 17.04.2017 - 18:23
20

La solución a esto no es realmente tan publicitada, 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 del operador puede tomar otros términos, pero el código anterior básicamente dice que se obtienen todos los mensajes de la 'categoría' de taxonomía que no tienen los términos 'gato' o 'perro'.

    
respondido por el Dwayne Charrington 21.03.2011 - 12:07
7

A continuación, le indicamos cómo hacerlo para tipos de correos personalizados y taxonomías personalizadas:

$happening = new WP_Query(
array( 
  'post_type'  => 'news',        // only query News post type
  'tax_query' => array(
    array(
        'taxonomy'  => 'news-cat',
        'field'     => 'slug',
        'terms'     => 'media', // exclude items media items in the news-cat custom taxonomy
        'operator'  => 'NOT IN')

        ),
   )
);

Esto funcionó perfectamente para excluir la taxonomía personalizada del tipo de publicación personalizada. Solo quería agregar el código de bucle de consulta para terminar el fragmento:     while ($ the_query- > have_posts ()): $ the_query- > the_post ();

    
respondido por el Tim Bowen 29.09.2011 - 21:47
0

Uso el complemento de WordPress "Visibilidad de categoría" de RYO "que parece funcionar bastante bien.

Puede decidir en una página de administrador qué categorías están visibles o excluidas de varias áreas.

enlace

-Adam

    
respondido por el adamf 16.03.2011 - 17:34
-1

Hice lo siguiente para excluir publicaciones de un determinado término de taxonomía:

$argos = array( 
    'tax_query' =>  array (
        array(
            'taxonomy' => 'topics', // My Custom Taxonomy
            'terms' => 'college', // My Taxonomy Term that I wanted to exclude
            'field' => 'slug', // Whether I am passing term Slug or term ID
            'operator' => 'NOT IN', // Selection operator - use IN to include, NOT IN to exclude
        ),
    ),
    'post_type'=>'page', // Post type I want to show, can be a custom post type too
    'posts_per_page' => -1,
    'orderby' => 'title',
    'order'=>'ASC',
    'post_parent' =>$post->ID // show child posts or pages of current page/post
); 

$query = new WP_Query( $args );
    
respondido por el erachnid 27.04.2012 - 10:00
-1
query_posts( array(
    'post_type' => 'listings',
    'tax_query' => array(
        array(
            'taxonomy' => 'status',
            'field'    => 'slug',
            'terms'    => 'sold',
            'operator' => 'NOT IN'
            ),
        )
    )
);

Este código excluye status = > vendido desde post_type = > listados

    
respondido por el subhash jangid 21.01.2017 - 09:49

Lea otras preguntas en las etiquetas