Aller au contenu principal

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.

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.

  1. Ouvrez le lien de récupération reçu par e-mail et connectez-vous.
  2. Suivez l’avis affiché en haut du tableau de bord jusqu’à l’extension ou au thème qui a causé l’erreur.
  3. Désactivez-le, ou mettez-le à jour si une version corrigée est disponible.
  4. 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.

  1. Téléchargez une copie de wp-config.php en guise de sauvegarde.

  2. 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 );
  3. Rechargez la page qui affiche l’erreur.

  4. Ouvrez wp-content/debug.log. Regardez les lignes les plus récentes qui commencent par PHP Fatal error. Le chemin de fichier indiqué sur cette ligne désigne généralement le coupable, par exemple un dossier dans wp-content/plugins/ ou wp-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.

Désactivez ensuite le débogage

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.

  1. Connectez-vous par SFTP et ouvrez wp-content.
  2. Renommez le dossier plugins en plugins-off.
  3. Rechargez le site. S’il fonctionne, une extension était en cause.
  4. Redonnez au dossier le nom plugins. WordPress affiche maintenant toutes les extensions comme inactives.
  5. 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.

Chez DomainPilot

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.

Cet article vous a-t-il aidé ?