Effectuer des requêtes dans WordPress avec WP_Query
Publié: 2023-02-12La base de données qui alimente votre site WordPress regorge d'informations précieuses. C'est ce qui permet de filtrer vos publications et vos pages selon de nombreuses variables différentes. 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à qu'intervient WP_Query. Il s'agit d'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 fournirons une compréhension plus approfondie de la classe WP_Query et comment elle peut être utilisée. Nous vous guiderons également à travers certaines étapes importantes à suivre lors de son utilisation. Si vous êtes prêt, allons-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 publications 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 venez d'apprendre 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.
1. Commencez avec une boucle personnalisée
L'un des meilleurs moyens de connaître l'appel WP_Query consiste à utiliser la boucle WordPress. Si vous ne savez pas ce qu'est la boucle, c'est un concept important à lire.
La boucle est ce qui appelle la base de données pour demander le contenu de la publication et affiche les données renvoyées. Il fonctionne également en fonction de paramètres définis, tels que le nombre de messages que vous souhaitez que votre site affiche sur une seule page (quelque chose que vous pouvez configurer dans votre menu Paramètres> Lecture ).
Les bases mêmes de la boucle ressemblent à ceci :
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>
Cette simple déclaration 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 base, 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 y a une chaîne WP_Query supplémentaire. Quels que soient les paramètres définis ici, ils détermineront quels messages seront affichés.
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 ceci dans la boucle, vos messages affichés n'incluraient plus l'utilisateur avec le numéro d'auteur "12".
Le nombre de paramètres que vous pouvez utiliser avec cette méthode est presque infini. Vous pouvez inclure des informations sur les catégories ainsi que des taxonomies avancées, pour ne donner que deux exemples.
2. Arguments : l'épine dorsale des requêtes personnalisées dans WordPress
Dans l'exemple précédent, vous avez peut-être remarqué "($args)" dans le cadre de la chaîne. C'est une partie vitale de la requête qui fait référence aux « arguments » inclus. Il indique exactement à la base de données 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 indiquer à 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.
3. Paramètres dans WP_Query : catégorie, balise, etc.
Jusqu'à présent, nous n'avons mentionné les paramètres qu'en passant. À ce stade, regardons de plus près ce qu'ils peuvent réellement faire. Leur fonction principale est de vous permettre d'extraire des collections de publications personnalisées.
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 le slug correspondant.
De plus, vous pouvez faire la même chose avec le paramètre Tag. Bien sûr, les paramètres Category et Tag ne sont vraiment que la pointe de l'iceberg lorsqu'il s'agit d'utiliser WP_Query.
4. 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 elles 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 des simples propriétés « $ posts » à 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 un autre moyen de modifier la requête principale sur votre page. Il s'agit de 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 de 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, cela 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. Étant donné que WP_Query vous permet d'exécuter plusieurs requêtes en 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 à ce qu'il en était 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 que l'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.
Chez WP Engine, notre passion est de nous assurer que vous disposez des ressources dont vous avez besoin pour créer des sites Web attrayants. Découvrez nos solutions WordPress et nos plans d'hébergement dès aujourd'hui !