WP_Query::get_posts()
Définition : WP_Query::get_posts() est une méthode de la classe WP_Query qui construit et exécute la recherche des publications selon les variables définies. Elle organise également plusieurs étapes de filtrage, de cache et de préparation des résultats.
Terminologie
Appellation / équivalent : WP_Query::get_posts — récupération des publications
Autres appellations : Récupération des résultats WP_Query, Moteur de sélection des publications
Comprendre le fonctionnement
La méthode exploite les paramètres de la requête pour déterminer les contenus à sélectionner. Elle applique des filtres et actions prévus par WordPress, construit ou utilise les opérations nécessaires et prépare les résultats. Le comportement dépend des variables transmises, des permissions applicables et du contexte de cache.
Il s’agit d’un élément interne important pour comprendre les requêtes. Dans le code d’un plugin, on privilégie généralement l’utilisation de la classe WP_Query ou d’API de plus haut niveau plutôt qu’un appel direct à get_posts() sur un objet déjà configuré. Ne pas confondre cette méthode avec la fonction globale get_posts(), qui possède sa propre interface.
Exemple concret
Un module de liste d’articles crée une nouvelle instance WP_Query avec un type de contenu et un nombre de résultats définis.
Exemple de code commenté
<?php
// Dans un modèle ou un plugin déjà exécuté par WordPress.
$liste = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => 3,
'post_status' => 'publish',
) );
if ( $liste->have_posts() ) {
while ( $liste->have_posts() ) {
$liste->the_post();
echo '<p>' . esc_html( get_the_title() ) . '</p>';
}
wp_reset_postdata();
}
Point technique à retenir
Différencier clairement WP_Query::get_posts() de get_posts() et préserver les données globales après une boucle secondaire utilisant the_post().
Termes associés
- WP_Query
- get_posts()
- WP_Query::parse_query()
- pre_get_posts
