Cum să interoghez un custom post type după termen?

3 mai 2012, 16:11:41
Vizualizări: 15.3K
Voturi: 2

Pare trivial dar nu reușesc să fac asta să funcționeze. Iată codul meu:

        $args = array(
            'numberposts'     => -1,
            'eventcategory'   => 'evenimente-faine',
            'post_type'       => 'event',
            'post_status'     => 'publish' 
        );

        var_dump(get_posts($args));

După cum poți vedea, taxonomia mea este eventcategory și termenul este evenimente-faine. Există de fapt peste 50 de termeni și indiferent de ce termen folosesc în loc de evenimente-faine, primesc întotdeauna același rezultat: toate postările. Deci termenul este ignorat și nu înțeleg de ce.

0
Toate răspunsurile la întrebare 1
6
10

Nu puteți crea propriile argumente - în loc să înlocuiți argumentul 'category' cu numele taxonomiei, folosiți 'tax_query'.

Consultați secțiunea "parametri de taxonomie" din codex pentru get_posts.

$args = array(
    'post_type' => 'event',
    'post_status' => 'publish',
    'tax_query' => array(
        array(
            'taxonomy' => 'eventcategory',
            'field' => 'slug',
            'terms' => 'nice-events',
        ),
    ),
);


$your_query = get_posts( $args );

// faceți ceva cu $your_query

Alternativ, puteți utiliza clasa WP_Query:

$args = array(
    'posts_per_page' => -1,
    'post_type' => 'event',
    'post_status' => 'publish',
    'tax_query' => array(
        array(
            'taxonomy' => 'eventcategory',
            'field' => 'slug',
            'terms' => 'nice-events'
        ),
    ),
);


$your_query = new WP_Query( $args );

// faceți ceva cu $your_query
3 mai 2012 16:36:41
Comentarii

@kaiser Într-adevăr, poți. Am crezut greșit că get_posts() nu suportă tax_queries. Ai dreptate, codex-ul confirmă că are suport.

Johannes Pille Johannes Pille
3 mai 2012 17:24:24

Nu primesc niciun rezultat folosind codul tău..

jilseego jilseego
3 mai 2012 17:36:21

@jilseego Era o virgulă pusă greșit - fragmentul de cod ar trebui să fie acum gata de copiat & lipit...

Johannes Pille Johannes Pille
3 mai 2012 17:40:24

Da, am corectat deja asta înainte să o faci tu. Nu am obținut niciun rezultat, sincer.

jilseego jilseego
3 mai 2012 17:42:51

Primul returnează un array gol. Al doilea returnează asta: http://pastebin.com/wnGE88Cn, care nu cred că este corect(?).

jilseego jilseego
3 mai 2012 17:56:24

Deci folosirea WP_Query() încă returnează un rezultat gol deoarece $your_query->have_posts() returnează o valoare booleană false.

jilseego jilseego
3 mai 2012 18:05:29
Arată celelalte 1 comentarii