web-dev-qa-db-fra.com

Comment exclure une taxonomie personnalisée de la boucle de publication

Existe-t-il un moyen simple et facile d'exclure toutes les publications d'une taxonomie personnalisée dans la boucle? Je cherche haut et bas, et ni SE, SO ni Google ne semblent avoir une réponse directe.

Je sais que cela peut être fait via une requête WPDB, mais cela ressemble à une énorme corde à sauter pour quelque chose qui devrait être assez simple.

19
Thomas

Vous voudriez utiliser l'opérateur NOT EXISTS en passant le slug de taxonomie, qui indique à la requête de ne pas inclure la catégorie choisie dans votre taxonomie personnalisée à l'intérieur de la boucle.

Pour exclure tous les articles de la taxonomie "fruit" (quel que soit le type de fruit), voici l'extrait:

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

$query = new WP_Query( $args );
10
aniskhan001

La solution à ce problème n’est pas vraiment annoncée, mais elle devrait l’être.

Vous pouvez faire ce qui suit:

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

L'argument de l'opérateur peut prendre d'autres termes, mais le code ci-dessus dit en gros d'obtenir tous les posts de la catégorie "taxonomie" qui ne contiennent pas les termes "chat" ou "chien".

23
Dwayne Charrington

Voici comment procéder pour les types d'articles et les taxonomies personnalisés:

$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')

        ),
   )
);

Cela fonctionnait parfaitement pour exclure la taxonomie personnalisée du type d'article personnalisé. Je voulais juste ajouter le code de la boucle de requête pour terminer l'extrait de code: while ($ the_query-> have_posts ()): $ the_query-> the_post ();

8
Tim Bowen

J'utilise le "plug-in WordPress" "RYO‘ Category Visibility ’" qui semble fonctionner assez bien.

Vous pouvez choisir sur une page d’administrateur les catégories visibles ou exclues de divers domaines.

http://ryowebsite.com/wp-plugins/category-visibility/

-Adam

0
adamf

J'ai fait ce qui suit pour exclure les messages d'un certain terme de taxonomie:

$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 );
0
erachnid
query_posts( array(
    'post_type' => 'listings',
    'tax_query' => array(
        array(
            'taxonomy' => 'status',
            'field'    => 'slug',
            'terms'    => 'sold',
            'operator' => 'NOT IN'
            ),
        )
    )
);

Ce code exclut status => vendu de post_type => listings

0
subhash jangid