Créer une page de recherche personnalisée pour un custom post type avec WordPress

Vous chercher à filtrer les recherches par custom post type et à créer une page de recherche différente en fonction des résultats ? Vous êtes au bon endroit :)
Problématique
Si votre site utilise des Custom Post Type, il y a de grandes chances que vous vouliez séparer les résultats de recherche par type de post.
Le problème, c’est que la recherche de WordPress englobe tous les types de contenu (post, page et custom post type). Quand vous effectuez une recherche dans la searchbar, vous allez avoir tout les type de contenu mélangés.
On va voir :
- comment filtrer les recherches par custom post type,
- puis créer des pages de recherche différentes par custom post type.
Filtrer une recherche WordPress par custom post type
Pour filtrer une recherche, il suffit d’ajouter un input caché à notre formulaire de recherche :
Remarquez sur la troisième ligne, nous avons ajouté un paramètre name= »post_type » qui nous permet de filtrer par custom post type, puis la valeur YOUR_CTP qu’il faudra remplacer par le slug de votre CTP.
Cela aura pour effet de filtrer la recherche par votre custom post type, sur la page search.php de votre thème.
On va maintenant voir comment personnaliser la page de résultat de recherche en fonction des custom post type affichés.
Personnaliser la page de résultat de recherche en fonction des custom post type
La première étape va être de modifier le ficher search.php qui est le template de résultat de recherche.
Supprimez tout son contenu pour le remplacer par ça :
Dans cet exemple, j’ai deux custom post type que je nomme YOUR_CTP et YOUR_CTP_02.
Vous pouvez en ajouter ou en enlever, et les renommer avec les slugs de vos custom post type.
La logique est la suivante :
- Si la recherche comprend des custom post type YOUR_CTP, je charge la première page de recherche,
- si la recherche comprend des custom post type YOUR_CTP_02, je charge la seconde page de recherche,
- autrement, je charge la page de recherche par défaut.
Il nous reste donc à créer les trois pages de recherches.
Création des pages de recherches personnalisées
Il ne nous reste plus qu’à créer nos fichiers de résultat de recherche :
- search-YOUR_CTP.php
- search-YOUR_CTP_02.php
- search-default.php
Chaque template sera chargé en fonction du custom post type affiché.
Voilà un exemple basique de ce que vous pouvez y mettre :
Avec ce code, vous aurez :
- un header,
- un titre,
- la boucle qui affiche les posts,
- le footer.
À vous de la personnaliser en fonction de vos besoins :)
See ya’ space integrator
Tu kiffes ? Alors partage avec tes potes !