Excluderea unei categorii din WP_Query

26 nov. 2017, 13:25:18
Vizualizări: 53K
Voturi: 6

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.

1
Comentarii

este greșit și trebuie să fie 'operator' => 'NOT IN'. dacă schimbi NOT_IN în NOT IN funcția va funcționa corect.

Khosravi.em Khosravi.em
15 mai 2023 12:51:00
Toate răspunsurile la întrebare 2
0
10

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 ,
);
26 nov. 2017 14:32:49
0

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
);
17 sept. 2018 22:41:01