4 conseils pour réparer un site WordPress

Publié: 2020-09-03

Il y a quelques jours, un ami m'a appelé et m'a dit qu'il avait été chargé de maintenir un ancien projet WordPress. Apparemment, le site Web n'avait pas été mis à jour depuis plus de trois ans et il y avait des problèmes partout. Le pauvre gars était totalement coincé, car il ne pouvait rien mettre à jour là-bas : plugins, thème, contenu… rien ne fonctionnait. Toutes les actions (autres que la navigation sur le site lui-même) ont entraîné le plantage de WordPress et renvoyé une erreur.

Lorsque nous avons un WordPress inutilisable qui génère continuellement des erreurs et ne peut pas être mis à jour, la première chose que nous devons faire est d'identifier pourquoi il se comporte comme il le fait. Autrement dit, nous devons trouver le coupable. Habituellement, tous les problèmes que vous pourriez rencontrer sur un site WordPress se produisent à cause de votre thème ou d'un (ou plusieurs) de vos plugins.

Compte tenu de cela, la procédure habituelle pour réparer un site WordPress consiste à identifier le plugin incriminé, à l'éliminer de l'équation, à tout mettre à jour et, enfin, à voir si nous pouvons réinstaller et mettre à jour le plugin incriminé sur notre site Web ou nous devrions chercher un remplacement. Aujourd'hui, je vais vous expliquer quatre astuces simples pour découvrir pourquoi un site Web échoue et, ainsi, pouvoir le réparer.

Utilisation du journal des erreurs de notre serveur

En supposant que c'est un plugin qui cause les erreurs que nous avons sur notre site Web, la première chose que nous devons faire est de valider ladite hypothèse. Il existe différentes formules pour le faire. Personnellement, j'aime commencer par regarder le journal des erreurs de mon serveur, qui a sa propre option dans cPanel :

Journal des erreurs dans cPanel
Journal des erreurs dans cPanel.

Espérons que le journal des erreurs ne contienne pas seulement une trace des erreurs qui se sont produites sur notre site Web, mais également des informations sur "où" elles se sont produites et, par conséquent, qui en était le coupable. Par exemple, la semaine dernière, j'ai rencontré le problème suivant dans le journal des erreurs de mon environnement de développement :

 appserver_1 | [Mon Aug 24 09:18:20.977541 2020] [php7:notice] [pid 1107] [client 172.20.0.2:34396] PHP Notice: register_rest_route was called <strong>incorrectly</strong>. The REST API route definition for <code>yoast/v1/get_head</code> is missing the required <code>permission_callback</code> argument. For REST API routes that are intended to be public, use <code>__return_true</code> as the permission callback. Please see <a href="https://wordpress.org/support/article/debugging-in-wordpress/">Debugg ing in WordPress</a> for more information. (This message was added in version 5.5.0.) in /app/.lando/wordpress/wp-includes/functions.php on line 5225, referer: http://nab5.lndo.site/wp-admin/edit.php

Le journal signale un avis PHP qui s'est produit dans l'un des propres fichiers de WordPress ( wp-includes/functions.php ), qui ne nous dit rien sur "un plugin étant le coupable". Heureusement, si vous lisez tout le message, vous verrez qu'il décrit ce qui a échoué (c'est-à-dire un appel à la fonction register_rest_route ) et nous donne un indice de ce qui pourrait être faux : Yoast (voir comment il mentionne « yoast/v1/get_head » ?).

Les journaux d'erreurs sont le moyen le plus simple de savoir rapidement quand/si quelque chose ne va pas et, si c'est le cas, quelle est la raison d'une erreur. Dans cet exemple particulier, j'ai découvert que j'avais un problème avec Yoast et, eh bien, tout ce que j'avais à faire était de mettre à jour le plugin vers sa dernière version

Désactiver les plugins du tableau de bord WordPress

Malheureusement, il n'est pas toujours possible d'accéder au journal des erreurs d'un site Web pour savoir quand les choses ont mal tourné. Ou, si vous avez accès au journal, il se peut qu'il soit incomplet. Dans ces cas, nous avons besoin de formules alternatives pour valider (ou réfuter) notre hypothèse initiale.

En supposant que notre site Web échoue en raison d'un plugin défectueux, la chose la plus simple à faire est de désactiver tous les plugins et de vérifier si l'erreur persiste. Si ce n'est pas le cas, le coupable était un plugin ; s'il persiste, le problème est ailleurs.

Pour ce faire, rendez-vous dans le Tableau de bord WordPress » Plugins , sélectionnez tous vos plugins actifs, et Désactivez -les en masse :

Désactiver les plugins à l'aide d'actions groupées
Comment désactiver les plugins à l'aide d'actions groupées.

et vérifiez si l'erreur persiste. Si ce n'est pas le cas, vous savez que le problème a été causé par l'un des plugins que vous venez de désactiver. Il est maintenant temps de découvrir lequel précisément.

Pour identifier le plugin défectueux, vous pouvez les activer un par un et vérifier quand l'erreur réapparaît. Ou, si vous voulez aller plus vite, vous pouvez appliquer les étapes suivantes :

  1. Activez la moitié de vos plugins.
    1. Si l'erreur réapparaît, le coupable est dans la moitié que vous venez d'activer, vous pouvez donc activer l'autre moitié en toute sécurité.
    2. Si l'erreur n'apparaît pas, le coupable est dans l'autre moitié.
  2. Une fois que vous savez dans quel "groupe" se trouve le plugin défectueux, il vous suffit de vous concentrer sur celui-ci et de répéter le processus. Activez la moitié de ce groupe et désactivez l'autre moitié (c'est-à-dire que vous vérifieriez maintenant un quart du total), et voyez si votre site Web fonctionne correctement.
  3. Répétez le processus jusqu'à ce que vous trouviez le coupable.

Une fois que vous savez quel plugin est défaillant, c'est à vous de décider comment résoudre le problème. Vous devrez peut-être contacter le développeur, essayer de réparer vous-même le plugin ou même envisager de le remplacer par une alternative. Mais, au moins, vous savez maintenant ce que vous devez faire pour vous débarrasser du problème.

Sauvegardez votre liste de plugins actifs

Rappelez-vous mon ami depuis le début? Lorsque nous enquêtions sur son site Web, nous avons suivi toutes les étapes précédentes et désactivé tous les plugins de son site Web…

…ce qui s'est traduit par un écran blanc de la mort !

Gif montrant un homme surpris

Apparemment, le Web regorgeait de plugins personnalisés et de modifications de thème avec de nombreuses dépendances croisées. En désactivant les plugins, certaines des fonctions sur lesquelles reposait le thème n'étaient plus disponibles, ce qui a déclenché une erreur fatale. C'est clairement une mauvaise pratique : un thème ne peut pas compter sur un plugin actif. S'il a besoin de certaines des fonctionnalités fournies par un certain plugin, il doit implémenter des contrôles de sécurité pour valider si elles sont disponibles ou non.

Quoi qu'il en soit, le fait est que le site a été complètement fermé et nous n'avons pas pu réactiver les plugins à l'aide du tableau de bord. Alors, quelle est la solution ici ? Eh bien, pour commencer, vous devriez toujours avoir une sauvegarde de votre site Web… mais dans ce cas particulier, il existe une solution plus simple et plus rapide à portée de main.

Dans votre base de données WordPress, il y a une table nommée wp_options . Là, vous trouverez une option nommée active_plugins . Sa valeur est un tableau avec tous les plugins actifs. Ainsi, avant de désactiver les plugins à l'aide de l'action groupée que j'ai mentionnée précédemment, enregistrez simplement cette valeur dans un fichier texte :

Plugins actifs dans la base de données
Plugins actifs dans la base de données.

De cette façon, si la "désactivation de tous les plugins" aboutit à un WSOD peu probable (mais pas impossible), vous pouvez réactiver tous les plugins en restaurant l'option active_plugins dans la base de données.

Comment désactiver les plugins via FTP

Si vous savez que votre problème est généré par un plugin spécifique mais que vous n'avez aucun moyen de le désactiver depuis le tableau de bord WordPress, vous pouvez le faire en toute sécurité via FTP.

Comme vous le savez déjà, les plugins ne sont rien de plus qu'un ensemble de fichiers. Lorsque vous installez un nouveau plugin sur votre site Web, son code se retrouve dans le dossier wp-content/plugins de WordPress. Profitant de cette connaissance, nous pouvons désactiver le plugin en le « supprimant » dudit dossier.

Accédez au cPanel de votre serveur et recherchez l'option FTP :

Option FTP dans cPanel
Option FTP dans cPanel.

Ensuite, à l'aide de l'explorateur de fichiers FTP, trouvez le dossier wp-content/plugins et localisez votre plugin :

Explorateur de fichiers CPanel
Navigateur de fichiers CPanel.

Maintenant, tout ce que vous avez à faire est de supprimer le plugin ou de renommer son dossier afin que WordPress ne puisse pas le trouver. De cette façon, si vous vous connectez à votre site WordPress, WordPress ne verra plus le plugin et ne pourra pas charger son code défectueux, résolvant ainsi le problème que vous aviez.

Utiliser un thème par défaut

Enfin, si l'hypothèse selon laquelle le problème a été causé par l'un de vos plugins n'était pas vraie, l'étape suivante consiste à supposer que le coupable est votre thème. Dans ce cas, il vous suffit d'installer un thème WordPress par défaut (comme Twenty Twenty) et de voir si le problème disparaît ou non. S'il disparaît, vous savez déjà qu'il y a un problème avec votre thème d'origine ; si ce n'est pas le cas, nous devrons en discuter dans un autre article.

Si, pour une raison quelconque, vous n'avez pas accès au tableau de bord WordPress, vous pouvez installer un nouveau thème sur votre site Web en le téléchargeant via FTP ( wp-content/themes ) et changer le thème actif à l'aide de la base de données : il suffit de modifier le template d'options et stylesheet de style dans wp_options . Par exemple, vous pouvez définir les deux options sur twentytwenty , en supposant qu'il s'agit du thème que vous avez téléchargé.

En résumé

Un WordPress vanille (sans plugins et sans thème personnalisé) a peu de chances d'échouer. Ainsi, si vous rencontrez des problèmes sur votre site Web, le coupable est très probablement l'un de vos plugins ou votre thème. Dans l'article d'aujourd'hui, nous avons vu différentes formules pour trouver le coupable, l'éliminer et récupérer le site Web. J'espère sincèrement que vous n'aurez pas besoin d'utiliser l'une de ces astuces… mais si vous le faites, j'espère qu'elles vous seront utiles.

Qu'en est-il du site Web de mon ami ? Eh bien, je ne sais pas ― certaines personnes disent qu'il a changé de carrière…

Image sélectionnée par Olia Nayda sur Unsplash.