Secondary Query

Définition : Secondary Query est une requête WordPress supplémentaire, distincte de la requête principale, généralement construite avec WP_Query. Elle sert à afficher une sélection de contenus sans modifier directement le contexte global de la page.

Terminologie

Appellation officielle : Secondary Query

Autres appellations : Requête secondaire, Requête WP_Query personnalisée

Comprendre le fonctionnement

Un thème ou une extension peut demander des contenus supplémentaires, par exemple les trois derniers articles d’une catégorie. Une nouvelle instance de WP_Query réalise alors une recherche selon ses propres paramètres. Cette requête conserve son état et sa liste de résultats sans remplacer, par principe, l’instance principale correspondant à l’URL.

Lorsqu’une boucle secondaire utilise the_post(), certaines données globales liées à la publication courante sont modifiées. Il faut ensuite appeler wp_reset_postdata() pour restaurer ce contexte, notamment avant de reprendre le rendu du template principal. Les requêtes secondaires répétées ou trop larges peuvent alourdir l’accès à la base et rendre le cache moins efficace.

Exemple concret

Une page d’accueil présente ses articles principaux et une liste séparée de contenus recommandés.

Exemple de code commenté

<?php
$liste = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => 3 ) );
if ( $liste->have_posts() ) {
    while ( $liste->have_posts() ) {
        $liste->the_post();
        echo '<p>' . esc_html( get_the_title() ) . '</p>';
    }
}
wp_reset_postdata(); // Restaurer le contexte du post principal.

Point technique à retenir

wp_reset_postdata() restaure les données globales liées au post ; elle ne supprime pas l’objet de requête.

Termes associés

  • WP_Query
  • Main Query
  • wp_reset_postdata()

Références officielles

Bouton retour en haut de la page