WP_Query
**class** WP_Query **{}**
La classe WordPress Query
Plus d’information
La plupart du temps, vous pouvez trouver l’information que vous souhaitez sans avoir à vous occuper des éléments internes de la classe et des variables globales.
Il existe toute une série de fonctions que vous pouvez appeler de n’importe où et qui vous permettront d’obtenir les informations dont vous avez besoin.
Il y a deux scénarios principaux dans lesquels vous pouvez utiliser WP_Query. Le premier est de savoir quel type de requête WordPress est en train de traiter. Les propriétés $is_* sont conçues pour contenir cette information : utilisez les Marqueurs conditionnels pour interagir ici. C’est le scénario le plus courant pour les auteurs de plugins (le second s’applique normalement aux auteurs de thèmes).
La seconde est pendant la Boucle. WP_Query fournit de nombreuses fonctions pour les tâches courantes dans la boucle. Pour commencer, have_posts() , qui appelle $wp_query->have_posts(), est appelée pour voir s’il y a des articles à afficher.
Si c’est le cas, une boucle while est lancée, en utilisant have_posts() comme condition. Cette boucle sera itérée tant qu’il y aura des messages à afficher.
À chaque itération, the_post() , qui appelle $wp_query->the_post() est appelé, configurant des variables internes dans $wp_query et la variable globale $post (sur laquelle les **Template tags** s’appuient), comme indiqué ci-dessus. Ce sont les fonctions que vous devriez utiliser lorsque vous écrivez un fichier de thème qui a besoin d’une boucle.
Note : Si vous utilisez the_post() avec votre requête, vous devez exécuter wp_reset_postdata() après pour que les balises de gabarit utilisent à nouveau l’article courant de la requête principale.
Usage :
Boucle standard :
<?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>' . esc_html( get_the_title() ) . '</li>';
}
echo '</ul>';
} else {
esc_html_e( 'Sorry, no posts matched your criteria.' );
}
// Restore original Post Data.
wp_reset_postdata();
Création de la variable de requête à laquelle on attribue la requête WP avec un paramêtre
$args
Si la requête répond à la methode have_posts() (si la requête vérifie qu’il y a une publication)
On affiche une liste contenant
tant que la requête vérifie qu’il ya une publication)
La publication assignée à la requête
On affiche le titre en echappant l’html —> esc_html( get_the_title()
Sinon on affiche un message de requête non pourvue
On restore les données du post original.