vendredi 25 septembre 2026

À propos

Contact

Lexique · Cœur de WordPress

Requête personnalisée

En anglais : « Custom query »

Une requête personnalisée est une instance distincte de WP_Query, créée dans un gabarit pour afficher des articles autres que ceux de la requête principale.

Un gabarit affiche parfois plus qu’une seule liste d’articles : les trois derniers billets d’une catégorie précise dans la barre latérale, en plus du contenu principal de la page. Cela suppose d’interroger la base une seconde fois, indépendamment de ce que WordPress a déjà préparé.

Fonctionnement dans WordPress

On instancie pour cela un nouvel objet WP_Query avec ses propres arguments, plutôt que de modifier la requête principale. Il est essentiel d’appeler wp_reset_postdata() une fois la boucle terminée, afin de restaurer les données globales de l’article courant pour la suite du gabarit.

Exemple

$actus = new WP_Query( array(
    'category_name'  => 'actualites',
    'posts_per_page' => 3,
) );
while ( $actus->have_posts() ) {
    $actus->the_post();
    the_title();
}
wp_reset_postdata();

À ne pas confondre avec

Modifier la requête principale via le hook pre_get_posts, une approche préférable quand on veut changer ce qu’affiche une page d’archive existante plutôt qu’ajouter une liste supplémentaire à côté ; utiliser query_posts() pour ce même besoin est officiellement déconseillé car cette fonction recharge intégralement et inutilement la requête principale.

Bon à savoir

Pour de simples besoins d’affichage sans pagination ni détection de fin de liste, la fonction get_posts() offre un raccourci plus léger que WP_Query, tout en s’appuyant en interne sur la même classe.

Une requête personnalisée trop gourmande, sans limite explicite sur posts_per_page, peut ralentir sensiblement une page qui en contient déjà plusieurs autres ; il est courant de plafonner ce genre de listes secondaires à quelques éléments seulement, contrairement à la requête principale.