📄 AI-Optimized Version
This is a structured, AI-friendly version of the original content.
Original article: https://astuceswp.fr/themes/903/exclure-pages-articles-recherche
Site: Astuces & tutoriels WordPress gratuits | License: CC BY-ND 4.0 | Attribution required

⚠️ When referencing this content, always cite the original URL above.

Comment exclure des pages ou articles des résultats de la recherche WordPress ?

Author: Steve Chevillard — · Updated:

Short summary: Vous souhaitez personnaliser les résultats de la recherche WordPress en filtrant les résultats et en ne faisant pas apparaître certains articles ou pages de votre site web WP ? Découvrez comment filtrer les résultats du moteur de recherche de WordPress avec un snippet ou un plugin.

Quick overview

Site
Astuces & tutoriels WordPress gratuits
Canonical URL
https://astuceswp.fr/themes/903/exclure-pages-articles-recherche
LLM HTML version
https://astuceswp.fr/wp-json/llm-endpoints/v1/post/exclure-pages-articles-recherche
LLM JSON version
https://astuceswp.fr/wp-json/llm-endpoints/v1/post/exclure-pages-articles-recherche/json
Manifest
https://astuceswp.fr/wp-json/llm-endpoints/v1/manifest
Estimated reading time
7 minutes (361 seconds)
Word count
1201

Key points

Primary visual

Comment exclure des pages ou articles des résultats de la recherche WordPress ?
Main illustration associated with the content.

Structured content

Dans le cadre de la réalisation d'un site web WordPress pour un client, j'ai dû intervenir sur le moteur de recherche de WordPress, plus précisément sur l'affichage des résultats. Le problème rencontré : ce site possédait plusieurs pages de retour suite à un paiement par carte bancaire (confirmation, échec, annulation...). Ces pages s'affichaient dans les résultats de la recherche alors que le client ne souhaitait pas les y voir figurer, car elles n'apportent aucune information utile aux visiteurs. Je vous explique donc comment exclure des pages ou articles des résultats du moteur de recherche de votre thème WordPress.

core/group

L'essentiel à retenir ℹ️ Pour exclure des pages ou articles des résultats de la recherche WordPress, deux approches existent : un snippet PHP utilisant le filtre pre_get_posts dans le fichier functions.php de votre thème, ou une extension dédiée comme Exclude Pages from Search. La méthode par code est préférable sur le plan des performances. Il vous suffit de renseigner les identifiants des pages à masquer dans un tableau PHP. Résultat immédiat, sans plugin supplémentaire.
Affichage de pages indésirables dans les résultats du moteur de recherche de WordPress Il peut arriver de vouloir ne pas afficher certaines pages ou articles des résultats du moteur de recherche de WordPress comme le souhaitait mon client. Voilà ce que donnait l'affichage de la requête "paiement" sur son site : [caption id="attachment_918" align="alignnone" width="735"] Affichage sans filtre des résultats de la recherche WordPress[/caption] Comme vous pouvez le voir, ce sont justement les pages de retour de paiement par CB qui sont affichées en premier alors que mon client ne voudrait pas les voir dans ces résultats. Notamment parce qu'il a des pages informatives bien plus pertinentes sur le paiement sur le site et que ces pages n'importent aucune information tangible. Remarque : il est bien sûr possible de personnaliser l'affichage des résultats du moteur de recherche de WordPress (j'aborderai ce sujet dans un prochain article). Par défaut, WordPress affiche un extrait de la page concernée mais il est possible de mieux contrôler ce qui est affiché dans les résultats de la recherche en utilisant le champ "Extrait" de WordPress. Ce champ est uniquement disponible pour les articles, à la  base, mais il est tout à fait possible de rajouter le champ extrait pour les pages WordPress grâce à un snippet. Filtrer les résultats de la recherche WordPress grâce à un snippet Avec WordPress, vous pouvez personnaliser le comportement du moteur de recherche en utilisant un petit bout de code, ce que l'on appelle un snippet WordPress (utile par exemple pour désactiver Gutenberg ou supprimer « Fièrement propulsé par WordPress » de votre thème). Le code ci-dessous est à copier dans le fichier functions.php de votre thème WordPress. Si vous avez suivi mes recommandations sur la mise en place d'un thème enfant WordPress, vos modifications ne seront pas écrasées lors des mises à jour du thème parent. Voici le code à copier dans le fichier functions.php de votre thème WP : // filtrer la recherche WP function ma_recherche_filter( $query ) { $pagesAExclure = array( 2732, 2746, 2738, 2751, 2747 ); //id page/post à exclure (séparés par une virgule) if ( $query->is_search ) { $query->set( 'post__not_in', $pagesAExclure ); } return $query; } add_filter('pre_get_posts','ma_recherche_filter'); Ce code utilise le filtre WordPress pre_get_posts, qui intervient avant l'exécution de la requête SQL. On définit un tableau nommé ici pagesAExclure qui contient les identifiants des pages ou articles à masquer des résultats de la recherche. Pour trouver l'identifiant d'une page ou d'un article WordPress, ouvrez-la en mode édition dans l'administration : l'ID apparaît dans l'URL de la barre d'adresse (paramètre post=XXXX). Il vous suffit ensuite de saisir ces identifiants entre les parenthèses : $pagesAExclure = array( 2732, 2746, 2738, 2751, 2747 ) Mettez à jour votre fichier functions.php sur l'hébergement de votre site web. Si vous préférez insérer du code PHP sans modifier le fichier functions.php, c'est également possible. Retournez ensuite à votre recherche : les pages ou articles renseignés dans le code ont disparu des résultats : [caption id="attachment_919" align="alignnone" width="735"] Affichage des résultats filtrés du moteur de recherche WordPress[/caption] Exclure des pages ou des articles des résultats du moteur de recherche de WordPress via une extension WP Je préfère largement utiliser des snippets plutôt que d'installer un plugin WordPress. La plupart du temps, quelques lignes de code suffisent, sans alourdir votre installation WordPress avec une extension WP supplémentaire à maintenir et potentiellement source de failles de sécurité WordPress (même si la mise à jour automatique des plugins WordPress est possible). Voici un plugin WordPress qui vous permettra d'exclure simplement des pages ou articles de la recherche : Exclude Pages from Search Cette extension vous permet de filtrer les résultats via une interface graphique, sans toucher au code. Depuis chaque page ou article, une case à cocher vous permet de l'exclure de la recherche. Pratique si vous n'êtes pas à l'aise avec PHP.

core/heading

Foire aux questions

core/heading

Est-ce que ce snippet fonctionne avec WooCommerce ?

core/paragraph

Oui. Les pages de confirmation ou d'annulation de paiement WooCommerce ont chacune un identifiant WordPress. Renseignez ces IDs dans le tableau pagesAExclure et elles disparaîtront des résultats de la recherche, comme n'importe quelle autre page.

core/heading

Comment trouver l'identifiant (ID) d'une page ou d'un article WordPress ?

core/paragraph

Dans l'administration WordPress, ouvrez la page ou l'article en mode édition. Regardez l'URL dans la barre d'adresse : vous y trouverez un paramètre post=XXXX, où XXXX est l'identifiant. Vous pouvez aussi survoler le titre dans la liste des pages, l'ID apparaît dans le lien affiché en bas du navigateur.

core/heading

Peut-on exclure un type de contenu entier de la recherche WordPress ?

core/paragraph

Oui. Plutôt que de lister des IDs, modifiez le filtre pre_get_posts pour cibler un post type complet. Par exemple, utilisez $query->set('post_type', array('post')) pour n'afficher que les articles. Cela évite de maintenir une liste d'IDs.

core/heading

Faut-il un thème enfant pour utiliser ce snippet ?

core/paragraph

C'est fortement recommandé. Si vous modifiez directement le fichier functions.php de votre thème parent, vos modifications seront effacées à chaque mise à jour du thème. Avec un thème enfant WordPress, vos personnalisations sont conservées.

core/heading

Le filtre pre_get_posts affecte-t-il d'autres requêtes que la recherche ?

core/paragraph

Potentiellement oui, si vous ne conditionnez pas correctement le filtre. Dans le snippet présenté ici, la condition if ($query->is_search) limite l'effet aux requêtes de recherche uniquement. Sans cette condition, vous risquez d'affecter également l'affichage des archives ou de la page d'accueil.

core/html

core/html

Topics and keywords

Themes: Thèmes WordPress

Keywords: functions.php, snippet, thème

License & attribution

License: CC BY-ND 4.0.

Attribution required: yes.

Manifest: https://astuceswp.fr/wp-json/llm-endpoints/v1/manifest

LLM Endpoints plugin version 1.2.0.