Débogage WordPress : le guide essentiel
Publié: 2021-02-11Quel que soit votre niveau de développeur WordPress, vous serez constamment confronté à un problème : les bugs. Même les développeurs les plus chevronnés ne peuvent pas systématiquement coder d'une manière qui ne produit pas de bogues. En fait, le débogage de WordPress peut vous aider à en apprendre encore plus sur la plateforme !
Si vous avez de l'expérience en programmation, il est probable que vous ayez eu des erreurs lors de la compilation ou de l'exécution. À moins que vous n'ayez jeté l'éponge et jeté le projet, il y a de fortes chances que vous passiez du temps à parcourir le code et à traquer le problème. La dynamique avec WordPress est la même.
Contrairement à la programmation dans un langage de programmation courant, les erreurs WordPress ne sont pas simplement imprimées sur la page. En effet, les journaux de débogage contiennent souvent des informations sensibles, telles que les informations d'identification des bases de données. WordPress à la place déposera ces journaux dans des fichiers sur votre serveur non accessibles au public.
Heureusement, contrairement aux ordinateurs qui pesaient trente tonnes développés par l'armée américaine, vous n'aurez pas à supprimer littéralement les bogues morts de votre machine pour accomplir cela ! Maintenant que nous avons un peu de contexte, examinons plus techniquement ce qui se passe dans le processus de débogage de WordPress.
Débogage WordPress expliqué
Comme vous le savez probablement, WordPress est développé en utilisant PHP. Cela signifie que le guide officiel de WordPress sur le débogage, ainsi que le guide officiel de débogage PHP seront d'excellentes ressources pour vous aider tout au long du processus.
Afin de déboguer, WordPress nécessite que vous ayez défini une variable PHP globale. Nous verrons exactement comment procéder dans la section suivante.
Il est important de distinguer en quoi le processus de débogage PHP est différent du processus de débogage WordPress. Avec vanilla PHP, seuls deux types d'erreurs sont affichés par défaut. L'une est une « erreur fatale », ce qui signifie qu'elle est si grave que la page ne peut même pas se charger. L'autre montre simplement à l'utilisateur une page vierge s'il y a une « erreur fatale sensible ». En d'autres termes, PHP sait que l'impression du message d'erreur complet peut poser un risque de sécurité. Ces paramètres peuvent être facilement modifiés en PHP lui-même.
WordPress, en revanche, est un peu plus verbeux en matière de débogage. Si vous activez simplement le débogage WordPress et ne le personnalisez pas, tous les niveaux d'erreur, d'avertissement et même d'éléments informatifs pour les développeurs seront affichés. Cela signifie que tout, des erreurs fatales à un message technique sur la façon dont vous devez optimiser une section de JavaScript, sera affiché. Bien que cela soit extrêmement utile pour les développeurs, ce n'est probablement pas le meilleur contenu à montrer aux utilisateurs.
Une autre caractéristique unique est que vous serez informé des fonctions PHP spécifiques à WordPress qui sont devenues obsolètes. Les fonctions qui sont devenues obsolètes sont celles qui peuvent encore fonctionner maintenant, mais leur prise en charge sera supprimée à l'avenir. Cela signifie également généralement qu'il existe un moyen meilleur et plus rapide d'accomplir le même processus.
Nous savons que vous n'êtes probablement pas enthousiasmé par le débogage de WordPress, mais c'est essentiel si vous souhaitez maintenir un blog ou un site fonctionnel. Avant de commencer à éditer des fichiers, assurez-vous d'utiliser d'abord un plugin de sauvegarde WordPress de confiance. Ainsi, si vous rendez accidentellement votre site inutilisable, vous pourrez tout restaurer en quelques clics !
Voyons maintenant comment nous pouvons démarrer !
Comment activer le débogage dans WordPress ?
Afin de démarrer le processus de débogage de WordPress, nous aurons besoin de quelques lignes de PHP.
Lancez votre éditeur de texte préféré (tant que votre éditeur de texte préféré n'est pas le Bloc-notes Windows !). Si vous en avez besoin, Notepad++ est un éditeur de texte open source couramment utilisé qui prend en charge presque tous les langages de programmation.
Ensuite, téléchargez une copie de votre fichier wp-config.php. Ne modifiez pas le fichier d'origine ! Nous téléchargerons simplement la version modifiée une fois que nous aurons terminé.
Une fois que vous avez ouvert wp-config.php dans votre éditeur de texte, vous devez ajouter la ligne de code suivante. Tout d'abord, recherchez-le pour vous assurer que vous ne l'avez pas déjà ; PHP devient très mécontent si vous définissez deux fois la même variable !
define( 'WP_DEBUG', true );
Tout ce que cette ligne de code fait est de définir cette variable PHP globale appelée WP_DEBUG sur la valeur booléenne true.
De même, si vous voulez activer la fonction debug WordPress off, vous voulez juste mettre dans la ligne opposée du code:
define( 'WP_DEBUG', false );
Cela active le débogage, mais ce n'est pas très utile si nous ne savons pas comment trouver les informations qui sont sorties !
Où est le journal de débogage WordPress ?
Il y a techniquement deux réponses à cette question, et la réponse exacte dépend de votre choix.
Comme nous l'avons dit, une façon consiste simplement à déposer define( 'WP_DEBUG', true );. Cela utilise les paramètres du journal de débogage WordPress par défaut, qui crée automatiquement un fichier s'il n'existe pas (ou s'y ajoute s'il existe) dans l'emplacement wp-content/debug.log.
Cependant, il y a plusieurs raisons pour lesquelles vous pourriez le vouloir dans un endroit différent. Par exemple, vous souhaiterez peut-être l'avoir dans un emplacement où un outil de débogage tiers peut y accéder. Afin de personnaliser l'emplacement du journal de débogage, vous pouvez activer le débogage comme ceci :
define( 'WP_DEBUG_LOG', '/best-wp-dev/errors.log' );
Journal de débogage WordPress expliqué
Le niveau de détail des informations dans votre journal de débogage WordPress dépend de la façon dont vous le configurez. Si vous l'activez simplement sans aucune modification supplémentaire, vous enregistrerez à peu près tous les événements qui provoquent une erreur, utilisent une fonction obsolète ou ne sont pas optimaux.
Étant donné que WordPress est construit sur PHP, votre journal affichera chaque erreur et avertissement PHP émis. Il contiendra également la date, l'heure et l'adresse IP associées à chaque événement. Malheureusement, vous pourrez également voir la sortie (très) détaillée de PHP sur de nombreuses choses, comme le style de code qu'il n'aime pas, la validation des données qui devrait être renforcée, et plus encore.
Surtout pour les personnes qui commencent tout juste à déboguer WordPress, consulter le fichier journal peut être assez écrasant. Cependant, vous devez vous rappeler que seuls quelques éléments sont nécessaires.
Débogage vs journalisation
Bien qu'ils visent à atteindre le même objectif, il est important que vous compreniez la différence entre le débogage et la journalisation. En d'autres termes, la ligne define( 'WP_DEBUG', true ); fait quelque chose de complètement différent de la ligne define( 'WP_DEBUG_LOG', true );.
Vous ne devez en aucun cas utiliser define( 'WP_DEBUG', true ); sur un site accessible au public. Cette commande, lorsqu'elle est utilisée seule, imprimera simplement des messages de débogage. Cela n'enregistre rien et produira des informations qui pourraient être utilisées pour voler des données sur votre (vos) site(s). S'assurer que cela n'est pas activé, en conjonction avec un plugin de sécurité WordPress solide, déjouera la grande majorité des tentatives de cyberattaques.
Déboguer WordPress sans risquer la sécurité
Évidemment, vous devrez régulièrement déboguer votre site. Cependant, vous ne voulez probablement pas constamment ajouter et supprimer des lignes de code de votre fichier wp-config.php.
En réfléchissant au processus, nous devrons d'abord activer le débogage en général. Ensuite, nous devrons nous assurer de consigner les erreurs pour pouvoir les corriger. Cependant, nous ne voulons pas montrer ces erreurs au grand public. N'oubliez pas que nous devons supprimer à la fois les erreurs PHP standard et les erreurs spécifiques à WordPress.
Exemple de code de débogage WordPress sécurisé
En utilisant le processus que nous avons décrit ci-dessus, voici quatre lignes de code qui peuvent vous aider à démarrer le débogage de votre site en toute sécurité !
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
Les trois premières lignes ci-dessus définissent simplement des variables PHP globales auxquelles WordPress fait attention. Nous rendons possible le débogage, la configuration de notre fonctionnalité de journalisation, puis la désactivation des erreurs spécifiques à WordPress.
Il y a de fortes chances que la quatrième ligne semble sortir du champ gauche ! Cette ligne est destinée à corriger les erreurs PHP qui ne sont pas gérées par WordPress. C'est la dernière base à couvrir pour s'assurer que les utilisateurs malveillants n'ont pas accès aux informations sensibles du site.
Comment corriger une erreur de débogage WordPress ?
Très souvent, les développeurs utiliseront ces quatre lignes de code que nous avons parcourues. Ils rencontreront une erreur, telle qu'un échec de connexion à la base de données, mais il n'y aura rien dans le journal de débogage à ce sujet. En effet, WordPress a différentes variables PHP globales pour différentes méthodes de débogage.
Examinons quelques scénarios dans lesquels vous devrez ajouter quelques lignes supplémentaires à votre fichier wp-config.php afin de déboguer correctement WordPress.

Déboguer WordPress JavaScript
Si vous avez un site WordPress, il y a de fortes chances qu'il utilise JavaScript. Pour les nouveaux développeurs, il s'agit essentiellement du langage qui alimente les éléments interactifs des sites. JavaScript est connu pour être assez fastidieux à déboguer. En effet, les sites modernes utilisent souvent des frameworks au-dessus de JavaScript, ce qui complique encore les avertissements et les messages d'erreur.
Malheureusement, ce n'est pas la seule chose qui rend difficile le débogage de WordPress JavaScript. Il existe deux formes de base de JavaScript : asynchrone ou « AJAX » et JavaScript normal . JavaScript normal fonctionne de manière linéaire ; il n'exécutera pas une fonction jusqu'à l'exécution de celle qui l'a précédée. Bien que cela ait pu fonctionner dans les premiers jours du Web, cela ne suffit pas pour les applications Web.
AJAX, en revanche, fonctionne en arrière-plan sur votre site WordPress. Il vous permet d'exécuter des fonctions JavaScript et d'attendre leur sortie, mais cela n'empêche pas l'exécution d'autres fonctions. Il est souvent nécessaire d'empêcher les sites de se bloquer.
La raison pour laquelle WordPress nous fait utiliser une autre variable globale PHP pour dire que nous voulons déboguer des scripts est que cette méthode de débogage génère une énorme quantité de données.La raison pour laquelle WordPress nous fait utiliser une autre variable globale PHP pour dire que nous voulons déboguer des scripts est que cette méthode de débogage génère une énorme quantité de données. C'est aussi parce que JavaScript et CSS s'exécutent côté client, tandis que PHP s'exécute côté serveur. Afin de générer toutes les erreurs rencontrées par WordPress en raison de JavaScript et CSS, ajoutez simplement cette ligne :
define( 'SCRIPT_DEBUG', true);
Cela affichera à la fois les erreurs JavaScript et CSS (feuille de style). Cela peut également aider avec ces opérations AJAX plus complexes.
Résoudre les problèmes de données
Presque tous les sites Web récupèrent des informations dans une base de données. WordPress a plusieurs bases de données ; certains sites stockent les bases de données sur des serveurs distincts et d'autres les conservent sur le même serveur. Étant donné que toutes les configurations sont différentes, il y a toujours un risque que quelque chose se passe mal dans votre connexion à la base de données.
Si vous obtenez un message d'erreur indiquant que WordPress n'a pas pu se connecter à une base de données, ou si vous remarquez que les données ne sont pas extraites correctement, vous devrez probablement déboguer. En utilisant simplement les variables de débogage WordPress standard, vous remarquerez probablement que rien n'est enregistré lorsque vous rencontrez une erreur liée à la base de données.
En effet, WordPress sépare les erreurs liées à la base de données de toutes les autres erreurs. Les messages d'erreur de la base de données contiennent souvent des informations sensibles, et les développeurs de WordPress voulaient s'assurer que vous ne divulguiez pas accidentellement des informations privées au public !
Afin de commencer à déboguer les problèmes de base de données WordPress, vous devrez ajouter encore une autre ligne à votre fichier wp-config.php :
define( 'SAVEQUERIES', true );
Plonger dans le débogage de base de données
Contrairement à nos autres variables de débogage WordPress globales, nous devons porter une attention particulière à celle-ci. « SAVEQUERIES » indique à WordPress que nous voulons voir chaque requête exécutée et ses résultats renvoyés. Cela nuira considérablement aux performances du site ! Veillez à ne pas l'exécuter sur votre serveur aux heures de pointe, et désactivez-le dès que vous n'en avez plus besoin.
Il stocke également sa sortie un peu différemment. WordPress utilise un tableau PHP de chaînes auquel vous devrez accéder pour voir les informations de débogage de la base de données. Il est situé dans la variable globale PHP appelée $wpdb et dans le tableau des membres appelé queries. Vous pouvez y accéder en imprimant le contenu de $wpdb->requêtes
Débogage des plugins WordPress
L'un des principaux avantages de WordPress par rapport aux autres plates-formes est sa riche bibliothèque de plugins pouvant faire à peu près n'importe quoi. Vous êtes peut-être en train de lire ceci et vous avez déjà mal à la tête en pensant à la logistique de devoir constamment modifier le contenu des fichiers. Heureusement, certains plugins peuvent nous aider à déboguer WordPress ! Il y en a deux particulièrement populaires qui en font un jeu d'enfant.
Débogage WP
Situé sur le site WordPress, c'est l'un des plugins de débogage WordPress les plus connus. Il automatise essentiellement les processus dont nous avons déjà parlé. En quelques clics depuis votre tableau de bord, vous pouvez activer et désactiver toutes ces variables globales PHP sur votre site.
Lorsque vous installez ce plugin, vous installez également une série de plugins dont il dépend. Dans l'ensemble, ils vous permettent de vous connecter et de vous aider à interpréter les erreurs que vous rencontrez.
Cet outil est idéal pour activer le processus de débogage, mais pour déboguer vos propres plugins et consulter facilement les informations de débogage WordPress liées à la base de données, vous aurez également besoin d'un autre plugin.
La barre de débogage
Comme son nom l'indique, la barre de débogage est simplement une barre sur le panneau d'administration de votre site WordPress. Il peut être utilisé en conjonction avec l'outil de débogage WP.
Il dispose d'outils pour les développeurs plus avancés, leur permettant d'afficher le cache, les requêtes qui ont été générées, les résultats des requêtes et des informations plus avancées. Comme nous l'avons mentionné, WordPress dépose toutes les informations de débogage de la base de données dans une variable globale PHP.
Pour afficher réellement ces informations, vous devrez parcourir ce tableau dans un fichier PHP personnalisé. Ce plugin vous offre une alternative simple. Il imprime toutes ces informations pour vous dans un format assez facile à lire et à comprendre. Il vous donne même quelques conseils pour optimiser vos appels de base de données !
Débogage des thèmes WordPress
Le débogage des thèmes WordPress implique généralement l'activation de la variable globale PHP concernant les scripts. En effet, les thèmes utilisent JavaScript et CSS côté client.
Tout d'abord, assurez-vous qu'il s'agit d'un thème que vous avez créé. S'il s'agit d'un thème tiers qui rencontre des problèmes, vous devrez contacter l'auteur de ce thème. Ce serait plutôt essayer de trouver une aiguille dans une botte de foin pour le faire vous-même !
S'il s'agit de votre propre thème, assurez-vous simplement d'avoir suivi les étapes décrites pour activer le débogage. Effectuez toute action qui vous fait remarquer le bogue. Vous pouvez également activer la console développeur dans votre navigateur Web en appuyant sur F12. Cela affiche plus de messages d'erreur au niveau du client qui peuvent aider dans le processus.
Après avoir effectué des actions sur votre thème qui conduisent à des erreurs, consultez le journal. Il devrait y avoir des informations détaillées sur la cause des erreurs. Il y a de fortes chances qu'il suffise de quelques ajustements JavaScript et/ou CSS pour que tout redevienne normal !
Débogage d'erreur critique WordPress
Si un plugin, un thème ou un autre contenu personnalisé génère une erreur provoquant l'échec de votre site WordPress, votre site doit vous envoyer un e-mail concernant l'échec. Surtout pour les nouveaux webmasters, cela peut être pénible.
Il n'y a pas besoin de s'inquiéter, car vous pouvez simplement suivre cette chaîne d'étapes pour résoudre le problème en très peu de temps !
- Assurez-vous que vous avez activé le mode de débogage de WordPress.
- Accédez à votre journal d'erreurs. Il doit contenir des informations détaillées sur l'erreur fatale. Si tel est le cas, recherchez le code d'erreur exact en ligne.
- Vérifiez votre version de PHP. Si ce n'est pas ce dont WordPress a actuellement besoin, la simple mise à jour de la version PHP utilisée par votre serveur pourrait résoudre le problème.
- Si vous n'avez toujours pas de chance, passez par vos plugins. Éteignez-les tous . Si le site fonctionne, cela signifie qu'un plugin a causé le problème. Parcourez-les un par un jusqu'à ce que vous trouviez le plugin problématique. Contactez celui qui l'a écrit et demandez-lui de le réparer.
- Si vous n'avez toujours pas trouvé le problème, il peut s'agir d'un problème lié au thème. Essayez de rétablir votre thème actuel sur celui par défaut de WordPress. Si votre site fonctionne, vous devrez changer temporairement de thème jusqu'à ce que l'auteur résolve le problème.
- Pas de dé? Mettez votre erreur sur le forum des développeurs WordPress. Il y a beaucoup d'utilisateurs qui seraient heureux de vous aider.
Emballer
Le débogage de WordPress peut vous aider à résoudre un certain nombre de problèmes que vous rencontrez. Il peut vous dire quels plugins ont des problèmes ou quel problème vous pourriez avoir avec un thème. En tant que développeur WordPress, le débogage vous aide non seulement à être un meilleur développeur, mais vous aide également à produire un code propre et de qualité.
AJ apporte plus de deux décennies d'expérience dans le travail et le développement de sites d'adhésion avec un large éventail de clients.
