Faire une page d’erreur MySQL personnalisée dans wordpress

Comme vous avez pu le remarquer il m’arrive (fréquemment) d’avoir quelques problèmes avec le serveur de base de données de ce blog… Cela n’est pas apache qui plante mais sa consommation excessive de mémoire qui empêche les communications avec le serveur MySQL du blog, rendant inaccessible 2803.

Lorsque tout est planté vous voyez ce genre de message (différent de celui d’une page 404) :

wordpress error

C’est pas très glamour comme message et surtout pas tellement professionnel… A force de recherche sur Internet je suis tombé sur un hack de wordpress très pratique qui en plus d’afficher une page d’erreur personnalisé permet de vous envoyer un email à chaque fois que la base de données est inaccessible.

Voici comment procéder pour installer cette modification :

1- Dans le fichier wp-db.php situé dans le dossier wp-includes, il faut rajouter après la ligne 367 (pour wordpress 2.13) :

function bail($message) { // Just wraps errors in a nice header and footer

Ces quelques lignes de code en modifiant bien entendu l’adresse de votre thème ainsi que l’email qui recevra le message d’erreur :

/* custom error page hack
shows a custom error page and emails error instead of
showing the default wordpress database error page */
include(’wp-content/themes/themename/dbase-error.php’);
$error = ( !$this->show_errors ) ? ” : $this->show_errors ;
mail(’admin@domain.com‘, ‘WordPress Error’, $error);
die;
/* end custom error page hack */

2- Ensuite une fois le fichier modifié et uploader sur votre serveur il faut faire sa page d’erreur personnalisée, pour la mienne j’ai adapté le code de 5ThirtyOne, pour ceux qui veulent le fichier en zip il est ici :

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


tapez votre message ici

-Henri-


Il faut donc copier le code, modifier le texte à votre convenance et ensuite enregistrer ce fichier avec le nom utilisé dans le point 1 cad : dbase-error.php et puis l’uploader dans le folder “themes” de votre installation wordpress…

3- Le résultat ressemblera à cela :

wordpress error

En espérant que vous ne le verrez pas trop souvent sur 2803…

A ce sujet lire aussi :

15 Comments

  1. Alexandre (30 comments)
    Posted April 27, 2007 at 10:43 am | Permalink

    Attends attends Henri je t’arrêtes tout de suite la :)

    Wordpress utilise une hiérarchie des templates qui te permettes de créer une 404 beaucoup plus simplement

    1/ se créer un fichier 404.php
    2/ monter son fichier 404.php comment on le souhaite, en gros reprendre l’architecture de single.php par exemple et faire un copier coller.

    La tu as déjà la hierarchie qui rentre en compte, en cas d’erreur 404, WP ira directement chercher 404.php

    Deux solutions pour l’appeler et la décorer, soit tu tappes directement du code dans 404.php soit tu te sert des boucles WP avec un

    Bref, je te renvoies la dessus : http://www.alexandrebalmes.fr/.....du-moteur/

    ^^

  2. henri (2316 comments)
    Posted April 27, 2007 at 10:52 am | Permalink

    Merci alexandre en fait je n’ai pas fait une page 404 sur cet exemple mais bien une page d’erreur de connexion MySQL et c’est là que ce situe la grande différence ;)

  3. henri (2316 comments)
    Posted April 27, 2007 at 10:54 am | Permalink

    Je viens de repréciser le post à ce sujet

  4. Fazz (5 comments)
    Posted April 27, 2007 at 11:37 am | Permalink

    C’est pas mal cette astuce… pas que je sois pour la simplicité, Henri, mais je n’ai pas compris la moitié de ce que tu as dit, non-geekitude oblige. :P

  5. henri (2316 comments)
    Posted April 27, 2007 at 11:40 am | Permalink

    Sorry c’était un post geek…

  6. Fazz (5 comments)
    Posted April 27, 2007 at 11:54 am | Permalink

    Non, je voulais dire Alexandre ! Henri, j’ai à peu près compris (les 3/4), mais c’est le post d’Alexandre que j’ai pas compris…

  7. henri (2316 comments)
    Posted April 27, 2007 at 12:00 pm | Permalink

    Ah tu m’avais fait douter ;)

  8. Nicolas (184 comments)
    Posted April 27, 2007 at 12:21 pm | Permalink

    Sympa comme hack, je vais le mettre en place sur mon blog ce WE.

  9. Alexandre (30 comments)
    Posted April 27, 2007 at 1:25 pm | Permalink

    Le problème c’est que si j’explique tout bien j’en ai pour plus long que l’article d’henri :p

  10. Alexandre (30 comments)
    Posted April 27, 2007 at 1:29 pm | Permalink

    Sinon oui pour gérer une erreur SQL c’est un bon tuto ^^

  11. Gonzague (44 comments)
    Posted April 27, 2007 at 3:36 pm | Permalink

    Hello Henri,

    J’utilisais ça également avant mais tu vas déchanter quand tu mettras à jour WordPress puisque le fichier sera remplacé ;)

    Perso je m’étais fait un petit message blamant OVH pour ses serveurs :D et incitant les gens à aller visiter mon Ziki ou à lire mon flux via Feedburner en attendant.

  12. Fran6 (166 comments)
    Posted April 28, 2007 at 11:22 am | Permalink

    Pas mal ton idée Gonzague d’aller sur Ziki ou Feedburner en attendant ! Je note !! :D

  13. henri (2316 comments)
    Posted April 28, 2007 at 11:35 am | Permalink

    Fran6 si tu jetes un oeil à l’image de mon message d’erreur tu verras que je recommande aussi d’aller faire un tour sur les flux feedburner ;)

  14. Martin (332 comments)
    Posted April 29, 2007 at 8:34 pm | Permalink

    Sais-tu si le plug-in affiche la page en tant que page classique (code statut HTTP 200), ou bien en tant que véritable page d’erreur (code statut HTTP 500 ou 503, par exemple) ? Cela peut en effet avoir une incidence importante sur le référencement des articles du blog sur les moteurs de recherche…

  15. henri (2316 comments)
    Posted April 30, 2007 at 11:41 pm | Permalink

    aucune idée martin… Je vais voir ce point.

Laisser un commentaire

Your email is never published nor shared. Required fields are marked *

*
*