web-dev-qa-db-fra.com

Exclure une catégorie de WP_Query

Je me suis cogné la tête contre le mur ces derniers jours en essayant d'exclure une catégorie d'une archive de téléchargements numériques faciles, que je suis en train d'afficher dans un widget personnalisé, mais je ne peux pas cacher une catégorie appelée 'projet personnalisé' Peu importe ce que j'essaie.

C’est le code que j’essaie d’utiliser, basé sur les instructions de https://codex.wordpress.org/Class_Reference/WP_Query

$argsQuery = array(
    'posts_per_page' => 3,
    'post_type' => 'download',
    'tax_query' => array(
        array(
            'taxonomy' => 'download_category',
            'field' => 'slug',
            'terms' => 'custom-project',
            'include_children' => true,
            'operator' => 'NOT_IN'
        )
    ),
);
$get_latest_downloads = new WP_Query( $argsQuery );                         
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();

//WIDGET BODY CODE

$i++;
endwhile;

J'ai aussi essayé d'utiliser 'cat' au lieu de 'tax_query', mais sans succès, car la catégorie 'custom-project' est toujours affichée dans la boucle des publications.

$argsQuery = array(
    'posts_per_page' => 3,
    'post_type' => 'download',
    'cat' => '-5',
);
$get_latest_downloads = new WP_Query( $argsQuery );                         
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();

//WIDGET BODY CODE

$i++;
endwhile;

Je suis certain que le nom du slug et l'ID de la catégorie sont corrects. Toute aide est grandement appréciée.

1
risha riss

Numéro 1

Dans votre requête de taxe, vous devriez utiliser NOT IN au lieu de NOT_IN. Cela empêche votre requête fiscale de fonctionner (en supposant que les autres champs soient corrects).

Numéro 2

Dans vos arguments pour WP_Query(), vous devez utiliser category__not_in au lieu de cat. Alors, changez votre code pour:

$argsQuery = array(
    'posts_per_page'   => 3,
    'post_type'        => 'download',
    'category__not_in' => 5 ,
);
2
Jack Johansson

https://codex.wordpress.org/Class_Reference/WP_Query

category__not_in (array) - utilise l'identifiant de la catégorie.

 $ argsQuery = array (
 'posts_per_page' => 3, 
 'post_type' => 'télécharger', 
 'category__not_in' => array (5) , // tableau, pas une chaîne 
); 
1
Joe