Page 404 et moteur de recherche Wordpress

Wordpress 9 Commentaires »

Par défaut, Wordpress génère une page des plus sobre suite à l’erreur 404.

Lorsque j’étais sous Drupal, j’utilisais Search 404. Un module qui permet d’effectuer une recherche à partir des mots clés de l’URL.

Tout fraîchement arrivé sous WP je trouve AskApache Google 404 comme étant « The must have ».

Je ne sais pas vous, mais d’après mes statistiques 90% des erreurs 404 sont du à une mauvaise indexation de Google.
AskApache Google 404 propose d’afficher sur votre site, le résultat de la recherche que Google produit en fonction des mots clés de l’URL.
Dans mon cas, strictement aucun intérêt. Effectuer une boucle d’affichage sur des pages inexistantes n’a aucun sens.

Le seul moyen d’afficher des articles dont je suis sur de l’existence, c’est de passer par le moteur de recherche interne à WP.
Je vous l’accorde que je perds la pertinence des requêtes Google, mais au moins les liens seront valides.

Voici donc le code à mettre dans le fichier 404.php (« Admin -> Apparence -> Éditeur de page »)

<?
$search_term 	= urldecode(substr ($_SERVER['REQUEST_URI'], 1));
$order		= array('', '/', '_', '-');
$replace		= '+';
$search_term 	= str_replace($order, $replace, $search_term);
$search_url 	= get_bloginfo('url') . '/?s=';
$full_search_url 	= $search_url . $search_term;
$full_search_url 	= preg_replace('/ /', '%20', $full_search_url);
print (file_get_contents ($full_search_url));
?>

Petite explication :

  • On récupère les paramètres de l’url
  • On remplace  » / – _ » par « + » qui est le symbole AND entre deux expressions recherchées sous Wordpress.
  • On affiche brute de pomme le résultat qui aurai été effectué de manière manuelle.

Avis aux amateurs de solution plus élégante.

Mots-clefs :, , ,
 
Designed by NattyWP Wordpress Themes.
Images by desEXign.