WordPress : modifier les paramètres de la boucle principale

image_pdf

Le hook pre_get_posts est utilisé pour modifier les paramètres de la boucle principale de WordPress avant que la requête ne soit exécutée.

Cela vous permet de personnaliser les requêtes de récupération des articles selon vos besoins sans avoir besoin de modifier directement la boucle principale.

Exemple d’usage : ajouter un filtre sur une page existante.

Voici comment utiliser le hook pre_get_posts pour modifier les paramètres de la boucle principale :

  1. Créez une fonction personnalisée : tout d’abord, vous devez créer une fonction personnalisée qui contiendra vos modifications pour les paramètres de la boucle principale.
  2. Vérifiez le contexte : pour vous assurer que vous ne modifiez que la boucle principale et pas d’autres requêtes de récupération de contenu, vous pouvez vérifier certains critères, comme s’assurer que vous êtes sur la page d’accueil ou une page d’archive. Vous pouvez également exclure certaines pages en utilisant la fonction is_admin() pour s’assurer que les modifications ne s’appliquent qu’au front-end.
  3. Modifiez les paramètres de la boucle principale : maintenant, à l’intérieur de cette fonction, vous pouvez modifier les paramètres de la boucle principale en utilisant les propriétés de l’objet $query. Par exemple, vous pouvez changer l’ordre de tri, exclure certaines catégories, modifier le nombre de publications à afficher, etc.
  4. Ajoutez le hook pre_get_posts : enfin, ajoutez votre fonction au hook pre_get_posts en utilisant la fonction add_action() dans le fichier functions.php de votre thème ou dans un plugin.
function mon_theme_modifier_boucle_principale( $query ) {
    if ( ! is_admin() && $query->is_main_query() && ( $query->is_home() || $query->is_archive() ) ) {
        // modifier l'ordre de tri
        $query->set( 'orderby', 'date' );

        // exclure certaines catégories
        $query->set( 'category__not_in', array( 1, 2, 3 ) );

        // modifier le nombre de publications à afficher
        $query->set( 'posts_per_page', 10 );
    }
}

add_action( 'pre_get_posts', 'mon_theme_modifier_boucle_principale' );

Avec ces étapes, votre fonction personnalisée sera appelée chaque fois que WordPress prépare la boucle principale pour une page d’accueil ou une page d’archive.

Remarque : pre_get_posts est appelé pour toutes WP Query, la fonction is_main_query() permet de vérifier qu’il s’agit bien de la requête principale (et non pas une requête personnalisée).

Vous pourrez ainsi apporter des modifications aux paramètres de la boucle avant que la requête ne soit exécutée, ce qui vous permet de personnaliser l’affichage des articles selon vos besoins.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.