Como eu excluo uma taxonomia personalizada do loop de postagens

16

Existe uma maneira simples ou fácil de excluir todas as postagens de uma taxonomia personalizada no loop? Eu tenho procurado alto e baixo, e nem SE, SO ou Google parecem ter uma resposta direta.

Eu sei que isso pode ser feito através de uma consulta WPDB, mas isso parece ser uma corda massiva para pular para algo que deve ser bastante simples.

    
por Thomas 16.03.2011 / 15:50

6 respostas

8

Você desejaria usar o operador NOT EXISTS junto com a passagem do slug de taxonomia, que informa à consulta para não incluir nenhuma categoria escolhida da sua taxonomia personalizada dentro do loop.

Para excluir todas as postagens que estão na taxonomia "fruit" (independentemente do tipo de fruta), veja o snippet:

$args = array(
    'post_type'      => 'post',
    'tax_query'      => array(
        array(
            'taxonomy' => 'fruit',
            'operator' => 'NOT EXISTS'
        )
    )
);

$query = new WP_Query( $args );
    
por aniskhan001 17.04.2017 / 18:23
20

A solução para isso não é realmente divulgada, mas deveria ser.

Você pode fazer o seguinte:

$args['tax_query'] = array(
    array(
        'taxonomy' => 'category',
        'terms' => array('cat', 'dog'),
        'field' => 'slug',
        'operator' => 'NOT IN',
    ),
);
query_posts($args);

O argumento do operador pode ter outros termos, mas o código acima é basicamente dizer que todos os posts da taxonomia 'category' não têm os termos 'cat' ou 'dog'.

    
por Dwayne Charrington 21.03.2011 / 12:07
7

Veja como fazer isso para tipos de postagem personalizados e taxonomias 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')

        ),
   )
);

Isso funcionou perfeitamente para excluir a taxonomia personalizada do tipo de postagem personalizada. Só queria adicionar o código do loop de consulta para finalizar o snippet:     while ($ the_query- > have_posts ()): $ the_query- > the_post ();

    
por Tim Bowen 29.09.2011 / 21:47
0

Eu uso o "Plugin WordPress de 'Visibilidade da Categoria' RYO" que parece funcionar muito bem.

Você pode decidir em uma página de administrador quais categorias são visíveis ou excluídas de várias áreas.

enlace

-Adam

    
por adamf 16.03.2011 / 17:34
-1

Eu fiz o seguinte para excluir postagens de um determinado termo de taxonomia:

$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 );
    
por 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 exclui status = > vendido de post_type = > listagens

    
por subhash jangid 21.01.2017 / 09:49