web-dev-qa-db-fra.com

Comment interroger le type de message personnalisé par terme?

Cela semble banal mais je ne peux pas le faire fonctionner. Voici mon code:

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

        var_dump(get_posts($args));

Comme vous pouvez le constater, ma taxonomie est eventcategory et le terme est Nice-events. Il y a en fait plus de 50 termes et quel que soit le terme que j'utilise au lieu de Nice-events, j'obtiens toujours le même résultat: tous les messages. Donc, le terme est ignoré et je ne sais pas pourquoi.

2
jilseego

Vous ne pouvez pas créer vos propres arguments - au lieu de remplacer l'argument 'category' par votre nom de taxonomie, utilisez 'tax_query'.

Voir la section "Paramètres de taxonomie" du codex sur 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 );

// do something with $your_query

Alternativement, vous pourriez utiliser le WP_Query class:

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

// do something with $your_query
8
Johannes Pille