Sur un site WordPress, une incompatibilité entre vos plugins ou bien votre thème peut créer des dysfonctionnements sur votre site web le rendant inexploitable. A première vue, on peut être décontenancé par ce genre de souci, cependant il existe des méthodes simples qui permettent d’identifier la source du problème.
Pour identifier le plugin ou le thème défectueux, vous devrez utiliser les logs en activant le mode debug. Il faut ajouter quelques lignes de code dans votre wp-config.php afin de voir ces rapports d’erreurs. Ces quelques lignes doivent être ajoutées en dessous de la constante define (‘WP_LANG’,’fr_FR’).
Tout d’abord, voici quelques explications sur ce code :
- define ( ‘WP_DEBUG’, true ) : cette option contrôle l’affichage des messages d’avertissements et d’erreurs. Pour l’activer, il faut ajouter la mention true
- define ( ‘WP_DEBUG_DISPLAY’, false ) : cette option permet l’affichage des erreurs directement dans le HTML de la page. Dans notre cas, cette option est sur false. Les erreurs seront visibles directement depuis l’administration WordPress via un plugin.
- define( ‘WP_DEFINE_LOG’, true ) : cette option active les logs pour votre site web
Pour visualiser les logs, je vous propose d’utiliser un plugin très pratique qui vous donne accès aux logs directement depuis votre administration WordPress. Ce plugin est WP Log Viewer.
Après son installation via le menu extensions, vous pouvez lire vos logs en allant dans le menu outils puis sur log viewer
Dans cet exemple, on peut voir qu’une fonction inconnue, ma_function, renvoie une erreur fatale. Vous pouvez également voir sur quelle ligne est située l’erreur ainsi que le nom du fichier PHP qui pose problème
Avec ce plugin et ces quelques lignes de code, vous pouvez aisément trouver les erreurs qui plantent votre site WordPress.
L’utilisation des logs
Chez WPServeur par exemple, la console facilite la gestion des logs pour vos sites WordPress. En effet, vous avez accès très rapidement à votre rapport d’erreur directement depuis la console. Via l’onglet FTP & SQL – LOGS, vous pouvez télécharger et visualiser vos logs afin d’identifier vos problèmes
Une fois les logs téléchargés, il faut les lire avec un éditeur de type Notepad++ par exemple. La lecture de ce fichier n’est pas simple et selon les erreurs notifiées, il peut être plus ou moins long.
Dans les logs, plusieurs informations sont présentes :
- la date et l’heure du relevé du log
- le niveau d’erreur
- un texte explicatif sur l’erreur
- la cible de l’erreur (environnement web, nom de votre WordPress, chemin vers le dossier plugins, plugin)
Tout d’abord, une parenthèse s’impose sur les types d’erreurs PHP rencontrées sur ces logs. Chaque erreur a une incidence plus ou moins importante sur le script :
- E_ERROR ou Fatal error : cette erreur est la plus forte et provoque l’arrêt du script. Dans le cas de l’exemple ci-dessus, le plugin optimizePressPlugin appelle une fonction qui n’existe pas d’où l’apparition de l’erreur fatale
- E_WARNING ou Warning : cette erreur est une erreur d’exécution qui ne provoque pas l’arrêt du script. Dans l’exemple ci-dessus, un argument invalide est présent dans une boucle PHP. Cette erreur se trouve dans le plugin subscriptio
- E_NOTICE ou Notice : cet avertissement est une erreur d’exécution non critique qui ne provoque pas l’arrêt du script
- E_PARSE ou Parse error : ces avertissements sont souvent des étourderies ou des oublis dans le code lors du développement de plugin ou d’un thème (point-virgule oublié, parenthèse manquante …)
Utilisation du FTP pour résoudre une incompatibilité
Grâce aux logs, le plugin défectueux est rapidement identifié. Il faut maintenant le désactiver via le FTP. En naviguant dans l’arborescence de votre site web, il faut accéder au dossier wp-content puis entrer dans le dossier plugins :
Une fois dans le dossier plugins renommez le plugin défectueux. Dans notre cas, on renomme le dossier du plugin optimizepressPlugin en ajoutant au début de son dossier trois XXX.
En réalisant cette manipulation, WordPress ne reconnaît plus cette extension et du coup elle est automatiquement désactivée.
Renommer le dossier /plugins/
Si vous avez beaucoup trop de plugins, vous pouvez dans ce cas renommer tout le dossier plugins comme ceci :
Cette manipulation va désactiver tous les plugins de votre WordPress. Pour perturber le moins possible vos internautes, pensez à mettre votre site en maintenance à l’aide d’un plugin de coming soon.
Dans l’arborescence du site web, vous avez dorénavant un dossier XXXplugins. Maintenant créez un nouveau dossier plugins et suivez la procédure ci-dessous pour identifier l’extension incompatible:
- Clic droit dans la fenêtre (au niveau du carré vert :) ) puis créez un dossier.
- Nommez ce dossier plugins.
- Glisser/déposer une à une les extensions présentes dans le dossier XXXplugins vers ce nouveau dossier plugins.
- Pour chaque déplacement, bien vérifier le site afin de voir si le bug est toujours présent.
- Vous identifierez ainsi aisément le plugin responsable.
Bon débogage à tous !
Bonjour Dewy, merci pour cet article .
je crois que je vais bien avancer dans WP now.