Corriger l’erreur critique de WordPress
Quand WordPress affiche « There has been a critical error on this website » (« Il y a eu une erreur critique sur ce site » sur un site en français), ou simplement une page blanche, un morceau de code PHP s’est arrêté sur une erreur fatale. PHP est le langage de programmation sur lequel fonctionne WordPress. La cause est presque toujours une extension, un thème, un changement de version PHP ou un manque de mémoire. Ce guide montre comment trouver la cause et remettre le site en marche. Il s’adresse aux propriétaires de sites qui peuvent se connecter à WordPress ou accéder à leurs fichiers par SFTP.
Chercher un lien de récupération dans vos e-mails
Quand WordPress intercepte une erreur fatale, il envoie généralement un e-mail à l’adresse e-mail d’administration du site, avec un objet qui mentionne un problème technique. Le message indique l’extension ou le thème à l’origine de l’erreur et contient un lien spécial.
Ce lien ouvre le mode de récupération : vous pouvez vous connecter au tableau de bord pendant que l’extension ou le thème défaillant est mis en pause, pour vous seulement. Les visiteurs voient toujours l’erreur tant que vous ne l’avez pas corrigée.
- Ouvrez le lien de récupération reçu par e-mail et connectez-vous.
- Suivez l’avis affiché en haut du tableau de bord jusqu’à l’extension ou au thème qui a causé l’erreur.
- Désactivez-le, ou mettez-le à jour si une version corrigée est disponible.
- Quittez le mode de récupération et vérifiez le site dans une fenêtre de navigation privée.
Si aucun e-mail n’arrive, vérifiez votre dossier spam. Si votre site ne peut pas envoyer d’e-mails du tout, ou si l’adresse n’est plus à jour, passez aux étapes ci-dessous.
Activer le journal de débogage
WordPress peut écrire les erreurs dans un fichier journal pour que vous voyiez exactement quel fichier a échoué. Ce type de réglage se trouve dans wp-config.php, dans le dossier principal du site.
-
Téléchargez une copie de
wp-config.phpen guise de sauvegarde. -
Repérez la ligne
define( 'WP_DEBUG', false );. Remplacez-la par ces lignes, au-dessus de la ligne/* That's all, stop editing! */:define( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );define( 'WP_DEBUG_DISPLAY', false ); -
Rechargez la page qui affiche l’erreur.
-
Ouvrez
wp-content/debug.log. Regardez les lignes les plus récentes qui commencent parPHP Fatal error. Le chemin de fichier indiqué sur cette ligne désigne généralement le coupable, par exemple un dossier danswp-content/plugins/ouwp-content/themes/.
Avec WP_DEBUG_DISPLAY réglé sur false, les messages d’erreur ne s’affichent pas sur la page : les visiteurs ne voient pas de détails techniques.
Une fois l’erreur corrigée, remettez WP_DEBUG sur false, retirez les deux lignes supplémentaires et supprimez debug.log. Un journal laissé en place peut grossir et révéler des détails sur votre site.
Désactiver toutes les extensions
Si vous ne trouvez pas la cause, écartez les extensions en bloc.
- Connectez-vous par SFTP et ouvrez
wp-content. - Renommez le dossier
pluginsenplugins-off. - Rechargez le site. S’il fonctionne, une extension était en cause.
- Redonnez au dossier le nom
plugins. WordPress affiche maintenant toutes les extensions comme inactives. - Connectez-vous et activez les extensions une à une, en vérifiant le site après chacune. Quand l’erreur revient, vous avez trouvé l’extension défaillante. Renommez le dossier de cette extension pour la désactiver de nouveau.
Passer à un thème par défaut
Si les extensions ne sont pas en cause, testez le thème. Dans wp-content/themes, renommez le dossier de votre thème actif, par exemple example-theme en example-theme-off. WordPress se rabat alors sur un thème par défaut installé, comme l’un des thèmes « Twenty ». S’il n’y en a aucun, téléversez-en d’abord un depuis le répertoire de thèmes de wordpress.org.
Vérifier la version PHP
Si l’erreur a commencé après un changement de version PHP, une extension ou un thème ne prend peut-être pas encore en charge la nouvelle version. Revenez à la version précédente dans les réglages de votre hébergement, puis mettez à jour l’extension ou le thème, ou remplacez-le, avant de réessayer la version plus récente. Consultez Versions et réglages PHP.
Augmenter la limite de mémoire
Si le journal indique Allowed memory size of ... bytes exhausted, WordPress a manqué de mémoire. Vous pouvez augmenter la limite demandée par WordPress en ajoutant cette ligne dans wp-config.php :
define( 'WP_MEMORY_LIMIT', '256M' );
WordPress ne peut pas utiliser plus de mémoire que ce que PHP autorise : cela n’aide donc que si la limite de mémoire PHP de votre hébergement est au moins aussi élevée. Des erreurs de mémoire répétées signalent souvent une extension trop lourde, qu’il vaut mieux corriger à la source.
Ça ne fonctionne toujours pas ?
Restaurez la sauvegarde d’avant le problème. Contactez ensuite l’assistance en indiquant le texte exact de l’erreur dans debug.log et ce qui a changé avant son apparition.
Contactez l’assistance DomainPilot avec le formulaire d’assistance. L’hébergement WordPress DomainPilot inclut des sauvegardes quotidiennes, ainsi que des mises à jour d’extensions et de thèmes avec retour arrière à partir de l’offre WP Grow.
Guides associés
- Mettre à jour WordPress en toute sécurité
- Versions et réglages PHP
- Un site web qui ne se charge pas
- Téléverser des fichiers par SFTP