Main Query
Définition : Main Query désigne la requête principale créée par WordPress pour déterminer les contenus correspondant à l’URL demandée. Elle pilote le contexte de la page, les indicateurs conditionnels et la sélection initiale des publications.
Terminologie
Appellation officielle : Main Query
Autres appellations : Requête principale, Main WP_Query
Comprendre le fonctionnement
Une requête HTTP est interprétée par les composants de WordPress, puis les paramètres obtenus alimentent la requête principale. L’instance WP_Query correspondante sert notamment à connaître le type de page, à préparer les contenus et à déterminer le template approprié. Les indicateurs comme is_home() ou is_archive() dépendent de ce contexte.
La requête principale est différente d’une requête secondaire créée dans un widget, un shortcode ou un template. Les modifications de ses paramètres doivent être ciblées avec précaution, notamment dans pre_get_posts, en vérifiant l’objet reçu et le contexte administratif. Une modification involontaire peut affecter la pagination, les archives ou les résultats de recherche.
Exemple concret
Une page de catégorie utilise sa requête principale pour connaître le terme consulté et les articles à afficher.
Exemple de code commenté
<?php
// Modifier seulement la requête principale côté public.
add_action( 'pre_get_posts', function ( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_home() ) {
$query->set( 'posts_per_page', 8 );
}
} );
Point technique à retenir
Ne pas utiliser la fonction globale query_posts() pour remplacer arbitrairement la requête principale.
Termes associés
- WP_Query
- Secondary Query
- pre_get_posts
