est-il possible d'exclure des publications avec un contenu de publication vide d'un wp_query?
$args = array(
'post_type' => array('post'),
'posts_per_page' => 5,
'post_status' => 'publish',
);
$query = new WP_Query($args);
$posts = $query->posts;
foreach($posts as $post) {
var_dump($post->post_content);
}
Le faire à l'intérieur de la boucle comme if($post->post_content !== '') { }
n'est pas une option. Parce que ma liste n'aura pas 5 éléments.
Ce n'est pas possible avec une requête standard WP, et vous devrez utiliser l'utilisation de posts_where
avant que le WP_Query
ne soit appelé.
function the_dramatist_filter_where($where = ''){
$where .= " AND trim(coalesce(post_content, '')) <>''";
return $where;
}
Dans ce qui précède, nous sélectionnons simplement les publications dans lesquelles la colonne post_content
n'est pas vide.
Ajoutez ensuite le filtre.
add_filter('posts_where', 'the_dramatist_filter_where');
Maintenant, effectuez la requête.
$query = new WP_Query(array('post_type' => 'post', 'posts_per_page' => 8));
Et ensuite, lorsque vous avez terminé, supprimez le filtre de la requête pour qu'il n'interfère pas.
remove_filter('posts_where', 'the_dramatist_filter_where');