J'éprouve des difficultés à ne montrer que les messages contenant des images utilisant la boucle. Mon niveau PHP est basique et toute aide sera vraiment utile.
Donc, fondamentalement, ceci est mon code original:
if( have_posts() ) {
while( have_posts() ) {
the_post();
get_template_part( 'inc/template-parts/content', $post_layout );
// and some other stuff
}
}
J'ai essayé les conseils de ce fil - Comment puis-je vérifier si une publication a une vignette dans WP_Query
? Mais sans aucun succès. Lorsque j'implémente le code, tous les messages disparaissent de la page d'accueil.
C'est le code que j'ai essayé:
$query = new WP_Query( $thumbs );
$thumbs = array(
'meta_query' => array( 'key' => '_thumbnail_id' )
);
if( $query->have_posts() ) {
while( $query->have_posts() ) {
$query->the_post();
get_template_part( 'inc/template-parts/content', $post_layout );
}
}
Tout conseil sera apprécié! Cordialement
Vous devez définir vos arguments avant vous les transmettez à WP_Query
, pas après. De plus, votre meta_query
devrait être un tableau d'un tableau, pas simplement un tableau
Ce
$query = new WP_Query($thumbs);
$thumbs = array(
'meta_query' => array('key' => '_thumbnail_id')
);
devrait ressembler à ceci
$thumbs = array(
'meta_query' => array(
array(
'key' => '_thumbnail_id'
)
)
);
$query = new WP_Query($thumbs);
Juste quelques notes supplémentaires
Assurez-vous de réinitialiser les données postérieures après une requête personnalisée. Ajoutez simplement wp_reset_postdata();
avant de fermer votre déclaration if
et juste après la fermeture de votre déclaration while
Je crois qu'une requête personnalisée pourrait ne pas être nécessaire ici. Si je lis bien votre question, vous pouvez simplement utiliser pre_get_posts
pour modifier la requête principale. Vous ne devez pas utiliser une requête personnalisée simplement parce que vous souhaitez modifier la requête principale.