Effectuer des requêtes dans WordPress avec WP_Query

Publié dans WordPress par Samantha Rodriguez

Dernière mise à jour le 24 février, 2020

La base de données qui alimente votre site WordPress regorge d’informations précieuses. C’est ce qui permet de filtrer vos publications et pages par de nombreuses variables différentes. Cependant, si ce que vous souhaitez afficher ne fait pas partie de votre thème, il existe d’autres façons d’utiliser ces données.

C’est là que WP_Query entre en jeu. C’est une classe PHP qui utilise une grande variété de paramètres. Par conséquent, il vous permet d’extraire des données de la base de données WordPress pour les utiliser ou les afficher sur votre site Web.

Dans cet article, nous allons fournir une compréhension plus approfondie de la classe WP_Query et de la façon dont elle peut être utilisée. Nous vous guiderons également à travers certaines étapes importantes à suivre lors de son utilisation. Si vous êtes prêt, plongeons-y !

Qu’est-ce que WP_Query ?

Comme nous l’avons mentionné, WP_Query est une classe PHP utilisée par la base de données WordPress. Cette classe particulière peut faire plusieurs choses, mais elle est principalement utilisée pour extraire des messages de la base de données.

Comme son nom l’indique, il effectue une requête en fonction des critères que vous lui avez définis. Comme il existe de nombreux paramètres que vous pouvez utiliser avec WP_Query dans WordPress, vous pouvez extraire et afficher des publications de plusieurs manières uniques. Nous explorerons ces options plus en détail plus loin dans cet article.

Comment utiliser WP_Query

Même si vous apprenez simplement les différents aspects de la base de code WordPress, WP_Query est une bonne classe pour commencer. Maintenant, décomposons quatre façons différentes de l’utiliser sur votre site Web.

Commencez avec une boucle personnalisée

L’une des meilleures façons de connaître l’appel WP_Query consiste à utiliser la boucle WordPress. Si vous n’êtes pas familier avec ce qu’est la boucle, c’est un concept important à lire.

La boucle est ce qui appelle la base de données demandant du contenu post et affiche les données renvoyées. Il fonctionne également en fonction de paramètres définis, tels que le nombre de publications que vous souhaitez que votre site affiche sur une seule page (quelque chose que vous pouvez configurer dans le menu de lecture Paramètres >).

Les bases mêmes de la boucle ressemblent à ceci:

<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>

Cette déclaration simple dit essentiellement que s’il y a des messages, ils doivent être affichés. Bien sûr, vous pouvez ajouter une grande variété de balises de modèle à cette fondation, afin de créer l’affichage que vous souhaitez.

Vous pouvez également insérer WP_Query dans la boucle. Cela vous permet de placer des paramètres sur les publications qui seront renvoyées. Décomposons à quoi cela ressemblerait:

<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

Vous verrez les mêmes instructions if / while de la boucle de base, mais il existe une chaîne WP_Query supplémentaire. Quels que soient les paramètres définis ici, les publications seront affichées.

Par exemple, si vous souhaitez exclure un certain auteur d’une liste de publications, vous pouvez le faire dans la boucle avec WP_Query:

$query = new WP_Query( array( 'author' => -12 ) );

En plaçant cela dans la boucle, vos publications affichées n’incluraient plus l’utilisateur avec le numéro d’auteur de « 12 ».

Le nombre de paramètres que vous pouvez utiliser avec cette méthode est à peu près infini. Vous pouvez inclure des informations de catégorie ainsi que des taxonomies avancées, juste pour donner deux exemples.

Arguments: L’épine dorsale des requêtes personnalisées dans WordPress

Dans l’exemple précédent, vous avez peut-être remarqué « (argargs) » comme une partie de la chaîne. C’est une partie essentielle de la requête qui fait référence aux « arguments » inclus. Il indique à la base de données exactement ce qu’il faut inclure dans les données renvoyées.

Essentiellement, ces arguments peuvent être configurés pour déterminer les résultats exacts que vous souhaitez afficher. Les arguments peuvent également être utilisés pour modifier la valeur des variables. Par exemple, si vous souhaitez modifier l’affichage de votre liste de catégories sur la page, vous pouvez utiliser un argument.

Votre argument définira un tableau de variables et de valeurs. Donc, si vous le souhaitez, vous pouvez utiliser un argument pour définir un tableau et dire à votre base de données de présenter les catégories par ordre décroissant. De plus, vous pouvez utiliser la même méthode pour exclure toutes les catégories qui ne contiennent pas de publications.

Paramètres dans WP_Query: Catégorie, Balise et plus

Jusqu’à présent, nous n’avons mentionné que des paramètres en passant. À ce stade, regardons de plus près ce qu’ils peuvent réellement faire. Leur fonction principale est de vous permettre de tirer des collections de messages conçues sur mesure.

Un exemple de paramètre pouvant être utilisé dans l’en-tête de votre site est le paramètre Category. Vous pouvez l’utiliser pour spécifier des catégories spécifiques à afficher. Cela se fait en fournissant le numéro de catégorie ou la limace appropriée.

De plus, vous pouvez faire la même chose avec le paramètre Tag. Bien sûr, les paramètres de catégorie et de balise ne sont vraiment que la pointe de l’iceberg lorsqu’il s’agit d’utiliser WP_Query.

Modifier des objets avec des Méthodes et des propriétés

Bien qu’il ne soit pas recommandé de modifier directement les propriétés d’une classe comme WP_Query, vous pouvez interagir avec eux en utilisant des méthodes. Essentiellement, les méthodes sont comme des fonctions, tandis que les propriétés sont l’équivalent de variables.

WP_Query a de nombreuses propriétés. Celles-ci vont de simples propriétés « postsposts » à des propriétés plus compliquées. Quelle que soit la méthode utilisée pour interagir avec eux, les données seront renvoyées en fonction des paramètres que vous choisissez de mettre en place.

WP_Query vs. query_posts() dans WordPress

Il convient de noter qu’il existe une autre façon de modifier la requête principale sur votre page. C’est la fonction query_posts(). Bien que cela puisse fonctionner de la même manière que WP_Query, cela peut également être très problématique.

La référence du code WordPress vous conseille même fortement de ne pas utiliser cette fonction dans la boucle principale de votre site Web. Il est également préférable de l’éviter dans les plugins et les thèmes. En effet, il remplacera complètement votre requête principale.

La classe WP_Query est préférée, car vous pouvez également « réinitialiser » la boucle principale après avoir exécuté une requête. Puisque WP_Query vous permet d’exécuter plusieurs requêtes dans une boucle, vous voudrez également comprendre comment implémenter la fonction wp_reset_postdata.

Si vous avez intégré une boucle secondaire dans la boucle WordPress principale, la fonction de réinitialisation sera placée à la fin et ressemblera à ceci:

<?php wp_reset_postdata(); ?>

Cela restaurera les balises de modèle par défaut et vous reviendrez à la situation avant le lancement de votre boucle secondaire.

Personnalisez votre site WordPress avec WP Engine

Pouvoir ajuster la façon dont les éléments sont affichés sur votre site Web n’est qu’un des avantages de l’utilisation de WordPress. Comprendre WP_Query et tirer parti des outils fournis sur la page des ressources pour les développeurs peut vous aider à créer des sites Web vraiment personnalisés.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.