Logo

Documentation

/home/vhsh1501/documentation.benjamin-bruant.com/wp-content/themes/zetheme/templates/single-wp.phpsingle

Utilisation de WP_Query

La WP_Query est une classe utilisée par WordPress pour lancer des requêtes personnalisées sans faire appel à SQL. Elle permet de récupérer des informations spécifiques de la base de données en fonction de la page demandée.

Utilisation de la WP_Query Pour utiliser la WP_Query, il faut créer une instance de la classe et définir les paramètres de la requête. Les paramètres les plus courants sont :

  • post_type : le type de publication à récupérer (par exemple, des articles, des pages, etc.)
  • posts_per_page : le nombre de publications à récupérer par page
  • paged : la page actuelle
  • s : le mot-clé de recherche

Exemple concret Supposons que nous voulions afficher les 3 derniers articles en date sur une page. Nous pouvons utiliser la WP_Query de la manière suivante :

$args = array(
    'post_type' => 'post',
    'posts_per_page' => 3,
    'orderby' => 'date',
    'order' => 'DESC'
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        // Afficher le titre et le contenu de l'article
        the_title();
        the_content();
    }
} else {
    // Aucun article trouvé
}

Dans cet exemple, nous créons une instance de la WP_Query avec les paramètres suivants :

  • post_type = post pour récupérer des articles
  • posts_per_page = 3 pour récupérer les 3 derniers articles
  • orderby = date pour trier les articles par date
  • order = DESC pour trier les articles dans l’ordre descendant (les plus récents en premier)

Nous utilisons ensuite la méthode have_posts() pour vérifier si des articles ont été trouvés, et la méthode the_post() pour afficher le titre et le contenu de chaque article.

Modification de la WP_Query Il est également possible de modifier la WP_Query utilisée par WordPress pour générer une page. Cela peut être utile pour ajouter des filtres ou des paramètres personnalisés à la requête. Pour ce faire, il faut utiliser les hooks et les filtres fournis par WordPress.

Par exemple, pour ajouter un filtre à la WP_Query utilisée pour générer la page d’accueil, nous pouvons utiliser le hook pre_get_posts :

function mon_filtre($query) {
    if ($query->is_home()) {
        $query->set('posts_per_page', 5);
    }
}
add_action('pre_get_posts', 'mon_filtre');

Dans cet exemple, nous définissons une fonction mon_filtre qui vérifie si la requête est pour la page d’accueil, et si c’est le cas, nous définissons le nombre de publications par page à 5. Nous utilisons ensuite le hook pre_get_posts pour ajouter ce filtre à la WP_Query.