Gestion des erreurs dans WordPress
15 février 2010 Pas (encore) de commentairesI love Mozillaet aimant WordPress. Autant dire une « niche ». Je demanderai toutefois aux personnes sensibles, aux jeunes enfants et aux femmes enceintes de ne pas lire la suite de cet article. Sans leur être fatale, la lecture de cet article pourrait leur occasionner certains troubles visuels et gastriques. En gros, si vous n’êtes pas développeur vous allez vous ennuyer ferme.
Utilisation de l’API de WordPress pour des trucs pas catholiques
Il peut arriver à certains d’entre vous d’utiliser l’Api de WordPress pour réaliser des choses un peu plus complexes que du simple affichage. Vous souhaitez par exemple interroger un fichier xml distant en fonction de telle ou telle condition (par exemple – je dis ça comme ça au hasard, pas parce que c’est le plugin sur lequel je travaille que j’ai installé ici et que j’espère releaser sur wordpress extend – pour afficher vos bookmarks delicious en fonction des tags associés à un article). WordPress n’offrant pas en standard ce genre de fonctionnalités, pas le choix, il vous faut mettre les mains dans le cambouis.
Evidemment au cours du long voyage que vous allez entreprendre pour réaliser votre fonctionnalité, vous allez forcément tomber sur des erreurs avant d’arriver à votre but. Et les erreus, pour que ça marche, il faut les corriger. Pour cela, WordPress met à notre disposition une classe très pratique pour ça : WP_Error.
La classe WP_Error pour gérer les erreurs
La classe WP_Error est instanciée par défaut dès lors que vous utilisez une fonction de l’API de WordPress. Ainsi, pour avoir un affichage optimal de vos erreurs, il vous suffit de ranger le résultat d’un appel à une fonction WordPress dans une variable et d’utiliser la fonction is_error(). is_error() vérifie si la variable qu’on lui passe est une erreur WordPress et si oui, is_error() peut vous renvoyer les détails de l’erreur, comme le message d’erreur WordPress standard :
if(is_wp_error($feed)) {
$error_string = $feed->get_error_message();
echo ' <div id="message"> ' . $error_string . ' </div> ';
}
WP_Error est utile pour les erreurs propres à l’API de WordPress, mais vous pouvez également étendre cette classe pour vos propres besoins. Pour plus d’infos là-dessus, je vous invite à lire Error Management for WordPress Plugins chez Weblogtool collection.