J'ai écrit il y a peu un article concernant un moteur de recherche en PHP Objet (POO) très complet permettant de faire de multiples tâches en une, voilà son adaptation totale pour WordPress. Pour ceux qui aurait raté le premier article, voici en résumé ce que permet le moteur de recherche :
- Trois types de recherche ("LIKE", "REGEXP" et le meilleur choix : "FULLTEXT") avec possibilité de créer les index FULLTEXT si nécessaire ;
- Mise en surbrillance des mots-clés recherchés de manière précise ou approchante ;
- Possibilité de rechercher des expressions exactes comme sur Google en utilisant les guillemets (exemple : "moteur de recherche" google pour chercher à la fois moteur de recherche et le mot Google) ;
- Possibilité de gérer des corrections automatiques (depuis la version 3.0) avec un index dédié de mots et expressions ;
- Autocomplétion des recherches avec un index dédié également ;
- Possibilité d'ordonner les résultats de recherche à notre guise en fonction de la table choisie ;
- Ajout possible d'un algorithme de pertinence (simple) pour classer les résultats selon le nombre de correspondance entre les mots de la requête et ceux trouvés dans les résultats ;
- Trois type de paginations adaptées et modulables avec styles CSS associés (ou non) ;
- Choix de l'encodage des caractères possibles ;
- Possibilité de sélectionner la ou les catégorie(s) de recherche pour les articles ;
- Possibilité d'exclure des "stop words" ou des mots d'une certaine taille.
Trêve de bavardage, les impatients doivent déjà vouloir télécharger l'extension WP-Advanced-Search... Me trompe-je ? Que ce soit vrai ou non, sachez que le plugin peut être installé directement dans WordPress ou que WP-Advanced-Search est téléchargeable via la plate-forme des plugins WordPress. Sinon, vous pouvez toujours récupérer l'archive de l'extension ici-même :
Télécharger “WP-Advanced-Search 3.3.8”wp-advanced-search.zip – Téléchargé 27186 fois – 2,79 Mo
L'extension WP-Advanced-Search pour WordPress
J'ai ajouté à l'extension WP-Advanced-Search quelques spécificités propres à WordPress bien entendu pour que l'ensemble soit cohérent, notamment la possibilité d'afficher plusieurs éléments de son choix :
- le titre de l'article (cliquable et pointant vers l'article) ;
- la date de publication (dont le formatage est modifiable) ;
- le nom de l'auteur ;
- la catégorie de l'article ou la page ;
- l'article complet ou l'extrait ;
- l'image à la Une des articles ou pages ;
- le numéro du résultat pour s'y retrouver si nécessaire.
Depuis la version 1.5 de l'extension de moteur de recherche WordPress, il est possible de modifier l'ordre d'affichage de quelques éléments comme la date, le nom de l'auteur et la catégorie de l'article. Plusieurs thèmes ont également été ajoutés (et d'autres viendront sûrement à l'avenir) pour donner quelques styles CSS de base, mais vous pouvez à tout moment personnaliser l'ensemble.
La version 1.6 du moteur de recherche WordPress corrige un ancien problème avec la mise en gras des mots clés recherchés...
La version 2.0 marque une nouveauté intéressante puisqu'il est désormais possible de procéder à des recherches spécifiques à des catégories d'articles !
Les version 2.1 puis 2.3 ont vu l'apparition d'un système d'autocomplétion (autogénéré ou non) mais aussi l'ajout d'un "trigger" (clic) ou d'un scroll infini pour afficher la suite des résultats comme alternative à la pagination originale.
La version 3.0 marque une avancée majeure avec la correction de mini-bugs mais surtout la mise en place d'un système de correction orthographique automatique.
La version 3.2 ouvre le moteur de recherche à WordPress MU (multisites) et reçoit de nouvelles fonctions pour exporter et importer les paramètres du plugin (pour éviter d'éventuelles pertes de paramétrages...).
Un problème de "sécurité" a également été corrigé depuis la version 1.8 afin que les petits malins qui joueraient avec le paramètre "page" des URL soient automatiquement rediriger vers la première page de résultats (ou vers la page d'erreur associée si aucun résultat n'existe).
J'ai également ajouté un système de traduction pour que chacun puisse modifier les textes français ou anglais avec POEdit mais aussi créer d'autres langues que j'ai préférées éviter d'écorcher. ^^
Installation de WP-Advanced-Search
Deux étapes sont nécessaire pour que l'ensemble du moteur de recherche fonctionne : d'une part il faut installer et activer l'extension, et d'autre part il convient de modifier quelque peu le fichier search.php de votre thème WordPress.
Le fichier search.php (pour l'affichage des recherches internes) contient en théorie la "boucle" ("the loop") de WordPress et toutes les informations pour afficher les résultats plus ou moins proprement. J'ai voulu vous éviter cette lourdeur de code bien que cela limite vos "libertés" d'affichage. WP-Advanced-Search ne demande qu'une simple ligne de code...
Dans l'ordre, il faut :
- Supprimer la boucle et tout ce qui s'en suit (quelque comme "while(have_posts())" jusqu'à "endwhile;" en général) ;
- Recopier le code <?php WP_Advanced_Search(); ?> dans le bloc qui va accueillir les résultats (sûrement une "div"). C'est aussi simple que ça, cette fonction contient tout ce qui est utile pour afficher les résultats.
L'extension WP-Advanced-Search suit les traces du moteur de recherche PHP qui me tient à coeur, il est donc probable que des versions suivent à l'avenir si le temps me le permet. Je ne vous cache pas que j'ai voulu créer cette extension dès lors que j'ai remarqué des "bugs" dans le moteur de recherche natif de WordPress, je me suis empressé de le remplacer par mon extension et depuis, tout fonctionne à merveille, vous pouvez tester WP-Advanced-Search en faisant une recherche sur ce blog...