Excluderea unei categorii din WP_Query
Mi-am bătut capul în ultimele zile încercând să exclud o categorie dintr-o arhivă de easy digital downloads, pe care o afișez într-un widget personalizat, dar nu pot ascunde o categorie numită 'custom-project' indiferent ce încerc.
Acesta este codul pe care încerc să-l folosesc, bazat pe instrucțiunile de la 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();
//COD PENTRU CORPUL WIDGET-ULUI
$i++;
endwhile;
Am încercat să folosesc și 'cat' în loc de 'tax_query', dar fără succes deoarece categoria 'custom-project' continuă să apară în interiorul buclei de postări.
$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();
//COD PENTRU CORPUL WIDGET-ULUI
$i++;
endwhile;
Sunt sigur că numele slug-ului și ID-ul categoriei sunt corecte. Orice fel de ajutor este foarte apreciat.
Problema 1
În interogarea ta de taxonomie, ar trebui să folosești NOT IN
în loc de NOT_IN
. Aceasta este cauza pentru care interogarea ta de taxonomie nu funcționează (presupunând că celelalte câmpuri sunt corecte).
Problema 2
În argumentele tale pentru WP_Query()
, ar trebui să folosești category__not_in
în loc de cat
. Deci, modifică codul tău astfel:
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'category__not_in' => 5 ,
);

https://codex.wordpress.org/Class_Reference/WP_Query
category__not_in (array) - utilizează ID-ul categoriei.
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'category__not_in' => array( 5 ), // array, nu un string
);
