Comment utiliser WP_Query et faire des requêtes personnalisées dans WordPress?

janvier 2020

Quentin

Pour afficher le contenu d’une page, WordPress utilise le concept de « Loop« . Pour chaque page, une requête principale est chargée de récupérer le contenu. Pour un article, un seul contenu sera récupéré, pour une page catégorie, ce sera plusieurs articles.

En dehors de la boucle principale, vous pouvez utiliser la classe WP_Query pour afficher d’autres articles selon vos critères. C’est très utile dans de nombreux cas. Avec cette fonctionnalité, vous pouvez par exemple afficher les 3 derniers articles d’un auteur particulier.

Voici comment s’utilise WP_Query dans WordPress :


// On créer une nouvelle requête
$query = new WP_Query(
    'author_name' => 'Quentin',
    'posts_per_page' => 3
);
 
// On affiche le contenu sur la même logique que la boucle principale
if ( $query->have_posts() ) {
    echo '<ul>';
    while ( $query->have_posts() ) {
        $query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* On utilise la fonction wp_reset_postdata pour restaurer la requête principale (pour éviter des bugs) */
wp_reset_postdata();

Comme vous pouvez le voir, l’utilisation de WP_Query est simple :

  1. On créer une requête avec des paramètres personnalisés : ici, on cherche les articles pour l’auteur « Quentin » et on récupère seulement 3 articles
  2. On utilise le système de boucle classique en mettant « $query-> » devant les fonctions de base
  3. On restaure la requête principale de la page grâce à wp_reset_postdata

Bien sûr, il existe de nombreux paramètres mais les citer ici serait trop long ! Je vous redirige donc vers le codex WordPress pour consulter la liste des paramètres de WP_Query.

PS: n'oubliez pas de lire mon tutoriel principal sur comment créer un thème WordPress !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *