Personnaliser votre page 404 pour aider l'internaute à trouver ce qu'il cherchait

404

Vous avez très certainement eu déjà l'occasion de venir sur une page 404 de mon blog. Celle-ci a fait, il y a pas mal de temps l'objet d'une refonte afin de permette aux internautes perdus de retrouver une trace d'un article sur lequel ils voulaient venir. Ça ne fonctionne pas forcément à tous les coups, mais comme on dit, c'est toujours mieux que rien. Il manque d'ailleurs à cette page un dessin que j'attends. J'ai chargé l'ami Kreiion de réaliser quelques chose de sympa à ce sujet.

Donc, pour revenir expliquer un peu le script ci-dessous qui n'est donc pas une extension (idéal pour ceux qui ne veulent pas surcharger leur blog avec ça) celui-ci va analyser l'adresse que l'internaute a utilisé pour venir lamentablement s'échouer. Il est bien sûr à placer dans la page 404.php de votre thème. Il va alors nettoyer un peu son contenu pour supprimer les trucs inutiles et les doublons, afin de ne garder essentiellement que les mots utilisés dans l'URL qui seront ensuite réinjecté dans le moteur de recherche interne. Une méthode qui assure donc à l'internaute qu'il ne retombera pas sur une nouvelle 404 crevée des 4 roues.

<?php
/* Récupération de l'adresse saisie  */
$search_term    = urldecode(substr ($_SERVER['REQUEST_URI'], 1));
/* Elimination des termes inutile */
$order      = array('www', '.html', '.php', '.jpg', '.gif', 'tag', 'category', '.htm', 'titre', 'categorie', 'rubrique' );
$replace        = '';
$search_term    = str_replace($order, $replace, $search_term);
/* remplacement des ponctuations */
$order      = array('', '/', '_', '-', '.');
$replace        = '+';
$search_term    = str_replace($order, $replace, $search_term);
/* elimination des doublons */
$search_term = implode("+", array_unique(explode("+", $search_term)));
/*Injection dans le moteur de recherche */
$search_url     = get_bloginfo('url') . '/?s=';
$full_search_url    = $search_url . $search_term;
$full_search_url    = preg_replace('/ /', '%20', $full_search_url);
?>

Il suffit alors de proposer (sur ma future image de @kreiion et/ou par le biais d'un lien cliquable la fonction suivante, ce qui aura pour conséquence de lancer une nouvelle recherche avec cette fois-ci, une grande chance pour l'internaute de trouver différents sujets pouvant l'intéresser, et qui sait, même, retrouver l'article original qu'il était venu voir.

<?php echo $full_search_url;?>

Il faudrait que je l'améliore un peu pour notamment faire une recherche en fonction de l'id d'un article qui se trouverait dans l'ancien système d'URL (/archives/ID ou ?p=ID), mais ce sera pour plus tard. Si vous voulez me faciliter la vie (et la vôtre), proposez moi cette nouvelle fonction à ajouter et vous aurez le droit, en prime à tout la reconnaissance de ma communauté :) Mettez dans les commentaire pour afficher du code :

< pre lang="php">< /pre> // sans les espaces

image


Partager par mail ou sur Google Twitter Identi.ca facebook SeenThis
flattr this!