vendredi 25 septembre 2026

À propos

Contact

FSE

Query Loop côté éditeur de site : une page d’archive sans écrire de PHP

Le bloc Query Loop permet de composer une archive personnalisée à la souris. Comparaison concrète avec l'approche PHP et WP_Query classique.

Par Clément Hadrot • 12 juillet 2022 • 4 min de lecture • Aucun commentaire
Query Loop côté éditeur de site : une page d'archive sans écrire de PHP

Construire une page d’archive a longtemps voulu dire ouvrir archive.php ou category.php, appeler WP_Query ou la boucle globale have_posts(), et boucler manuellement sur chaque champ à afficher. Avec le bloc Query Loop, disponible dans l’éditeur de site depuis WordPress 5.8 et largement consolidé en 5.9, cette même page se construit à la souris, bloc par bloc, sans quitter l’éditeur.

L’intérêt dépasse le simple confort visuel : un client ou un rédacteur autonome peut modifier la mise en page d’une archive sans toucher au code, et un développeur peut livrer plusieurs variantes d’affichage (grille, liste, carrousel) en dupliquant simplement un template. Voyons comment le construire concrètement, puis ce que cela change par rapport à l’ancienne approche PHP.

Construire un template d’archive personnalisé

Dans l’éditeur de site, on crée un nouveau template via Modèles → Ajouter un nouveau modèle, en choisissant par exemple « Toutes les archives » ou une archive spécifique à une taxonomie. Le bloc Query Loop s’insère alors comme conteneur principal : il interroge la base de données à la manière de WP_Query, puis répète sa structure interne pour chaque article trouvé.

À l’intérieur de la boucle, on place les blocs enfants qui afficheront chaque champ : Titre de l'article, Extrait, Image mise en avant, Date de publication, Termes de taxonomie ou Auteur de l'article. Chacun de ces blocs reste indépendant et peut être stylé, réorganisé ou masqué sans casser la logique de boucle, contrairement à un template PHP où chaque champ est une ligne de code liée aux autres.

Filtres, tri et pagination

Le panneau de réglages du bloc Query Loop expose les paramètres les plus utiles sans écrire une seule ligne de PHP :

  • Type de contenu : articles, pages, ou tout type personnalisé enregistré avec show_in_rest activé.
  • Tri : par date (plus récent ou plus ancien), par titre, ou de façon aléatoire.
  • Filtres : par auteur, par taxonomie, en incluant ou excluant la page courante.
  • Nombre d’articles par page et décalage, pour par exemple exclure les trois premiers articles déjà mis en avant ailleurs sur la page.
L'essentiel à retenir : Construire un template d'archive complet sans toucher à un fichier PHP ; Maîtriser filtres, tri et pagination du bloc Query Loop ; Comparer l'approche bloc et l'approche WP_Query classique

La pagination sans rechargement complet

Un bloc Pagination de la requête se glisse juste après le bloc Query Loop et propose trois enfants combinables : Page précédente, Numéros de page et Page suivante. Le tout reste entièrement stylable, avec des états actifs distincts pour la page en cours. Point d’attention pour la performance : sur un site à fort trafic, il reste préférable de vérifier que l’objet cache est actif, la requête générée par le bloc restant une requête SQL classique, sans optimisation magique.

L’approche PHP classique, pour comparaison

Avant le bloc Query Loop, la même archive personnalisée demandait un fichier archive.php proche de ceci :

<?php
$query = new WP_Query( array(
    'post_type'      => 'post',
    'posts_per_page' => 9,
    'orderby'        => 'date',
    'order'          => 'DESC',
) );

if ( $query->have_posts() ) :
    while ( $query->have_posts() ) : $query->the_post();
        get_template_part( 'template-parts/content', 'excerpt' );
    endwhile;
    the_posts_pagination();
    wp_reset_postdata();
endif;

Ce code fonctionne parfaitement, mais chaque ajustement visuel (déplacer l’image, ajouter un badge de catégorie, changer l’ordre des champs) impose de rouvrir le fichier PHP correspondant, souvent partagé avec content-excerpt.php. Avec le bloc Query Loop, ce même ajustement se fait en glissant un bloc dans l’éditeur, avec un aperçu immédiat.

Ce que l’approche bloc ne remplace pas encore

Pour des requêtes très spécifiques (jointures complexes, méta-requêtes imbriquées avec plusieurs opérateurs, tri par un champ ACF calculé à la volée), WP_Query en PHP reste plus flexible. Le bloc Query Loop expose un jeu de paramètres volontairement limité à ce qui couvre la majorité des cas d’usage éditoriaux.

En résumé

Le bloc Query Loop transforme la création d’une archive en un exercice de mise en page plutôt qu’un exercice de code. Pour la grande majorité des sites vitrines, blogs ou portfolios, il couvre largement les besoins : filtres, tri, pagination, et blocs enfants réutilisables. Il ne dispense pas de connaître WP_Query, qui reste la solution de repli dès qu’une requête sort de l’ordinaire, mais il change radicalement le temps nécessaire pour livrer une archive standard à un client.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi