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.
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