Blog Web & Design

Comment exclure des pages des résultats de recherche WordPress ?

Dans certains cas, vous souhaiterez peut-être exclure certaines pages de votre site WordPress des résultats de recherche. Cela peut être utile pour des pages d’administration, des pages spécifiques ou des contenus sensibles que vous ne voulez pas que les utilisateurs trouvent en recherchant sur votre site.

Besoin d’un spécialiste WordPress pour votre projet ? Contactez-moi

Heureusement, WordPress offre une manière simple de personnaliser les résultats de recherche en filtrant certaines pages. Si vous souhaitez une solution plus flexible et sans avoir à modifier le code de votre site, vous pouvez télécharger un plugin sur mon site TD Plugin qui vous donnera une interface intégrée à votre WordPress.

Pourquoi exclure des pages des résultats de recherche ?

Exclure certaines pages des résultats de recherche peut améliorer l’expérience utilisateur en éliminant des résultats non pertinents. Cela peut également aider à protéger des informations sensibles ou à réduire le contenu que vous ne souhaitez pas rendre facilement accessible.

Utiliser le « crochet wordpress » (ou « hook ») : pre_get_posts

L’une des façons les plus simples d’exclure des pages spécifiques de la recherche WordPress est d’utiliser le hook pre_get_posts. Ce hook permet de modifier la requête avant qu’elle ne soit exécutée, en filtrant ou en ajustant les résultats.

Voici un exemple de code pour exclure des pages de la recherche. Ce code doit être ajouté au fichier functions.php de votre thème, ou dans un plugin personnalisé.

function td485_exclure_pages_recherche( $query ) {
    if ( ! is_admin() && $query->is_search ) {
        // Définir un tableau avec les slugs des pages à exclure
        $slugs_a_exclure = array( 'slug-page-1', 'slug-page-2', 'slug-page-3' ); // Remplace par les slugs de tes pages

        // Récupérer les pages correspondant aux slugs à exclure
        $pages_a_exclure = array();
        foreach ( $slugs_a_exclure as $slug ) {
            $page = get_page_by_path( $slug ); // Récupère la page par son slug
            if ( $page ) {
                $pages_a_exclure[] = $page->ID; // Ajoute l'ID de la page au tableau
            }
        }

        // Exclure ces pages de la recherche
        if ( ! empty( $pages_a_exclure ) ) {
            $query->set( 'post__not_in', $pages_a_exclure );
        }
    }
}
add_action( 'pre_get_posts', 'td485_exclure_pages_recherche' );

Explication du code

Vérification du type de requête : La condition ! is_admin() && $query->is_search permet de s’assurer que le code ne s’exécute que lorsqu’une recherche est effectuée, et pas dans le tableau de bord de l’administration WordPress.

Définition des slugs à exclure :
Le tableau $slugs_a_exclure contient les slugs des pages à exclure des résultats de recherche. Tu peux modifier ce tableau pour y ajouter ou retirer des slugs de pages.

Récupération des pages par leur slug :
La fonction get_page_by_path( $slug ) permet de récupérer un objet WP_Post pour chaque slug. Si la page existe, son ID est ajouté au tableau $pages_a_exclure.

Exclusion des pages de la recherche :
Le tableau $pages_a_exclure contient les IDs des pages que tu veux exclure. La ligne $query->set( 'post__not_in', $pages_a_exclure ); permet de modifier la requête de recherche pour exclure ces pages.

Hook pre_get_posts : Le hook pre_get_posts est utilisé pour modifier la requête de recherche avant qu’elle ne soit exécutée. Cela garantit que les pages exclues ne figureront pas dans les résultats.


Un mini-plugin pour faire ça ?

Si vous n’êtes pas à l’aise avec le developpement informatique et vous souhaitez une solution plus flexible et sans avoir à modifier le code informatique de votre site, un plugin pré-conçu avec une page d’options personnalisée peut être une solution idéale. Cela permet de gérer les exclusions via l’interface d’administration de votre WordPress, rendant le processus plus accessible même pour les utilisateurs non techniques.

Aperçu de la page option du plugin
Dernière mise à jour le Auteur : Thomas Dufranne

Ce contenu vous a-t-il été utile ?

Merci pour votre avis !

Si vous pensez pouvoir aider d'autres personnes, pensez à partager le contenu

Merci pour votre avis !

Désolé que vous n'ayez pas trouvé votre réponse.

Je vous invite à me poser vos question par commentaire ou par e-mail !

Repondre

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