Je veux lister les récents published posts de mon blog wp et exclure certains posts de certaines catégories. Le code suivant fonctionne très bien, 10 publications récentes sont répertoriées et les publications de ces catégories sont ignorées. Cependant, les brouillons sont également répertoriés.
$args = array( 'numberposts' => '10', 'tax_query' =>
array(
'post_type' => 'post',
'post_status' => array( 'publish' ),
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => array( 10, 11, 57 ),
'operator' => 'NOT IN',
),
),
)
);
$recent_posts = wp_get_recent_posts( $args );
foreach( $recent_posts as $recent ){
echo '<li><a href="' . get_permalink($recent["ID"]) . '">'. $recent["post_title"].'</a> </li> ';
}
?>
La ligne avec 'post_status' => array( 'publish' ),
ou 'post_status' => 'publish',
ne fonctionne pas. Une idée pourquoi?
Les arguments que vous utilisez sont faux. Ils devraient être:
$args = array(
'numberposts' => '10',
'post_type' => 'post',
'post_status' =>'publish',
'tax_query' => array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => array( 10, 11, 57 ),
'operator' => 'NOT IN',
)
);
Ou plus court:
$args = array(
'numberposts' => '10',
'post_type' => 'post',
'post_status' => 'publish',
'category__not_in' => array( 10, 11, 57 )
);