Cours WordPress en ligne
Le débogage de WordPress commence par WP_DEBUG
, mais peut aller bien au-delà. Dans cet article, nous allons:
- Découvrez comment écrire des messages de débogage dans un fichier journal et où se trouve ce fichier
- Apprenez à utiliser les fichiers de base JavaScript et CSS non minifiés à des fins de débogage,
- Apprenez à consigner toutes les requêtes SQL exécutées sur une page,
- Apprenez à connaître quelques plugins qui améliorent l'expérience de débogage
Ecrire des messages de débogage dans un fichier journal
Pour démarrer le débogage, accédez au wp-config.php
à la racine du système de fichiers WordPress et activez la variable de débogage, c'est-à-dire définissez debug sur true:
define ('WP_DEBUG', vrai);
Définir cette constante comme true entraînera l'affichage de toutes les erreurs PHP, avis et avertissements à l'écran. Faire cela pendant la phase de développement du projet est fortement recommandé car cela vous montre les bogues dans votre code pendant que vous développez, et vous pouvez les corriger immédiatement.
Mais que faire si vous souhaitez vérifier les erreurs sur un site de production? L'affichage des erreurs à l'écran est la dernière chose que vous voulez faire, car cela ne perturbe pas seulement l'apparence du site, mais peut également être une source de fuite d'informations.
Alors, comment pouvons-nous attraper les bogues qui se produisent en production? Existe-t-il un moyen de voir les informations de débogage sans les partager avec les visiteurs du site? En effet, il y en a, et c’est là que d’autres constantes définies dans wp-config.php
entrer en jeu.
Introduction à WP_DEBUG_DISPLAY et WP_DEBUG_LOG
Le Codex WordPress documente une solution à ce problème, sous l'entrée Comment déboguer WordPress:
Après avoir allumé WP_DEBUG
, allumer WP_DEBUG_LOG
. De cette façon, les erreurs suivies sont écrites dans un fichier journal.
Maintenant, vous pourriez vous demander qui va créer ce fichier journal et où se trouvera-t-il? La réponse est que WordPress s'occupe de cela pour nous, c'est-à-dire pas besoin de notre création manuelle: dès qu'une erreur survient, un fichier journal est créé, et est placé dans le contenu wp
dossier. Si simple!
La prochaine chose à faire est de ne pas autoriser l'écriture d'erreurs à l'écran. Pour ce faire, désactivez WP_DEBUG_DISPLAY
.
// Désactiver l'affichage des erreurs et des avertissements
define ('WP_DEBUG_DISPLAY', faux);
Et donc, l'ensemble de commandes qui nous permet d'envoyer des messages d'erreur à un fichier et non à l'écran est le suivant:
// Activer le mode WP_DEBUG define ('WP_DEBUG', vrai); // Activer la journalisation du débogage dans le fichier /wp-content/debug.log define ('WP_DEBUG_LOG', vrai); // Désactiver l'affichage des erreurs et des avertissements define ('WP_DEBUG_DISPLAY', faux);
Vous devrez parfois ajouter cette ligne afin de masquer les erreurs de l'écran. Cela peut se produire si le serveur php.ini
Le fichier a display_errors défini sur 1.
@ini_set ('afficher_erreurs', 0);
Écrire vos propres messages dans le fichier journal, ou quand écho
Ne le coupe pas
Pendant le processus de localisation d'une erreur, l'un des moyens les plus pratiques de déboguer consiste à utiliser écho
et var_dump
. Mais, parfois, ces commandes ne peuvent pas être utilisées. Parfois, la raison est claire – par exemple lors de la création d'un widget et que quelque chose ne va pas pendant la méthode de sauvegarde, l'écho à l'écran ne fonctionnera pas car la fonction utilise AJAX, rafraîchissant ainsi la partie du widget à laquelle vous seriez écho
-ing… D'autres fois, la raison peut ne pas être claire – vous obtenez juste une erreur fatale qui ne permet pas à la page de s'afficher, et votre écho
ne s’affiche tout simplement pas à l’écran… Quoi qu’il en soit, que la raison soit claire ou non, le résultat est le même et vous devez trouver une manière différente d’afficher les valeurs des variables en question.
La solution consiste à activer les deux wp_debug
et wp_debug_log
dans wp-config.php
, – c'est-à-dire en les réglant tous les deux sur vrai.
Cela crée un error.log
fichier et le place dans le contenu wp
dossier.
Comment enregistrer des variables au lieu de écho
Maintenant, au lieu d'utiliser le écho
pour enregistrer vos variables, vous utilisez la commande error_log
Commande PHP.
Donc, au lieu de
echo "Je suis sur la ligne 38";
Vous écrivez:
error_log
("Je suis à la ligne 38");
Comment enregistrer des variables au lieu de var_dump
var_dump
Supposons maintenant que nous n'ayons pas de chaîne d'erreur ou aucune chaîne du tout, mais que nous souhaitons vérifier les valeurs de certaines variables, comme nous le faisons avec var_dump
.
J'ai trouvé cet extrait de code il y a quelques années dans un article qui expliquait comment vider var_dump
dans un fichier, et cela ressemble à ceci:
$ x = "Ma chaîne"; // Dump x, ou toute autre variable d'ailleurs ob_start (); var_dump ($ x); $ contents = ob_get_contents (); ob_end_clean (); error_log ($ contents);
Transformer notre débogueur intelligent en une fonction
Pour ne pas avoir à écrire ces 8 lignes à chaque fois, le plus efficace est d'en faire une fonction permanente dans votre functions.php
fichier de thème si vous développez un thème, ou dans l'un de vos fichiers de plug-in si vous développez un plug-in. La fonction doit accepter un paramètre qui est la variable qui doit être sauvegardée dans le fichier.
Additionnel error_log
Paramètres
Si vous regardez dans le error_log
commande, vous verrez qu'il obtient 3 autres paramètres facultatifs. La combinaison du second, $ message_type
, et le troisième, $ destination
, et dans certains cas le quatrième, $ extra_headers
, définissez un emplacement supplémentaire dans lequel le journal des erreurs peut être écrit.
Plus de possibilités de débogage dans WP-CONFIG.PHP
SCRIPT_DEBUG
Parfois – pas souvent – vous pourriez avoir un problème avec les fichiers JS ou CSS qui appartiennent au cœur de WordPress, et vous souhaitez les déboguer – insérez-en console.log
commandes ou une autre forme de débogage,
Mais WordPress est très efficace pour charger ses scripts et styles et utilise des versions minifiées des fichiers JS et CSS, mais ceux-ci sont difficiles à déboguer.
Heureusement, WordPress est bien équipé pour de tels cas et propose une version non réduite de chaque fichier JS et CSS. La façon de dire à WordPress d'utiliser ces fichiers est d'activer le SCRIPT_DEBUG
constante dans wp-config.php
, c'est-à-dire, réglez-le sur vrai
. Cela force WordPress à utiliser les versions «dev» des fichiers CSS et JavaScript de base plutôt que les versions minifiées qui sont normalement chargées.
définir('SCRIPT_DEBUG
', vrai);
SAVEQUERIES
Il peut arriver que vous souhaitiez déboguer des requêtes de base de données. Cela peut se produire soit parce que vous pensez que l’une des requêtes prend plus de temps qu’elle ne le devrait, soit qu’elle renvoie des résultats incorrects, ou pour toute autre raison pour laquelle la solution serait d’examiner les requêtes en cours sur la page que vous chargez.
Dans un tel cas, activez le SAVEQUERIES
constante dans wp-config.php
, et toutes les requêtes seront enregistrées, en plus des informations sur la durée d'exécution de cette requête et sur la fonction qui l'a appelée. Toutes ces données sont stockées dans le global $ wpdb-> requêtes
.
define ('SAVEQUERIES', vrai);
Débogage des plugins
En plus des moyens intégrés dont WordPress vous permet de déboguer, il existe quelques plugins qui peuvent également vous aider dans votre débogage. Ils donnent beaucoup plus d'informations que les possibilités intégrées et les affichent de manière plus sophistiquée. Ce sont les meilleurs, avec leurs descriptions tirées de leur page de plugins dans le référentiel de plugins WP.
- Moniteur de requête –
La description: Query Monitor est le panneau des outils de développement pour WordPress. Il permet le débogage des requêtes de base de données, des erreurs PHP, des hooks et des actions, des blocs d'éditeur de blocs, des scripts et feuilles de style mis en file d'attente, des appels d'API HTTP, des appels Ajax, des appels d'API REST, etc. Il présente ses informations de manière utile, par exemple en affichant des requêtes de base de données agrégées regroupées par les plugins, thèmes ou fonctions qui en sont responsables. Il ajoute un menu de la barre d'outils d'administration affichant un aperçu de la page actuelle, avec des informations de débogage complètes affichées dans les panneaux.
Les autres informations: Ce plugin a le plus grand nombre d'installations actives (plus de 100000 au moment de la rédaction de cet article) et est bien pris en charge (11 problèmes sur 15 résolus au cours des deux derniers mois). Il a 5 étoiles sur la base de 363 avis.
Il est développé par John Blackbourn, un contributeur de longue date. - Barre de débogage –
La description: Ajoute un menu de débogage à la barre d'administration qui affiche la requête, le cache et d'autres informations de débogage utiles.
Lorsque WP_DEBUG est activé, il suit également les avertissements et les avis PHP pour les rendre plus faciles à trouver. Lorsque SAVEQUERIES est activé, les requêtes MySQL sont suivies et affichées.
Il a également d'autres modules complémentaires disponibles, tels que le plugin Debug Bar Console qui ajoute une console PHP / MySQL.
Les autres informations: Ce plugin a plus de 30000 installations actives. Son support fait quelque peu défaut, avec 0 problème sur 4 résolu au cours des deux derniers mois. Il a 4 étoiles sur la base de 59 avis.
Il est développé par plus de 10 contributeurs et développeurs, l'un d'eux étant WordPress.org, et certains des autres sont des contributeurs de longue date. - Déboguer ceci –
La description: Déboguer Ceci fournit des informations sur votre installation WordPress, le tout à partir de la barre d'administration frontale: l'objet WP_Query actuel, les informations et les options du blog, les fournisseurs d'intégration, les fichiers en HTML rendu (CSS, images, JavaScript), les filtres et les actions, les tailles des images, Globales et constantes, menus, statistiques de cache d'objets, plugins, plugins à utiliser, dropins, règles de réécriture, requêtes, informations PHP et serveur, pièces jointes, types de messages, scripts et styles mis en file d'attente, codes courts, barres latérales et widgets, taxonomies et termes, Thèmes, utilisateurs, programmes et travaux WP Cron et journal de débogage WP.
Il permet des extensions de ses capacités en ajoutant du code. Des extraits de code peuvent être trouvés sur la page du plugin dans le référentiel.
Les autres informations: Ce plugin a plus de 5000 installations actives. Il n'y a pas eu de problèmes dans le forum d'assistance au cours de la dernière année et demie. Il a 4,5 étoiles sur la base de 15 avis.
il est développé par 4 développeurs, qui sont depuis longtemps des développeurs de plugins et de thèmes.
Débogage du canard en caoutchouc et du cerveau reptilien
Le débogage implique plus que la simple activation de variables. En fait, vous devriez d'abord essayer de localiser l'origine de votre erreur. Dans Un guide de débogage dans WordPress avec votre cerveau reptilien, Fred parcourt les différents éléments du système qui pourraient être à l'origine du bogue, et quand suspecter l'un d'entre eux.
Et si l'erreur se trouve dans le code que vous avez écrit mais que vous ne la trouvez pas? Dans ce cas, peut-être que le débogage de Rubber Duck, que David explique en détail, peut vous aider.
Où aller ensuite dans le débogage?
J'espère que cet article a introduit quelque chose de nouveau dans votre arsenal de débogage. Il est puissant d’apprendre à trouver ce qui n’a pas fonctionné dans WordPress, et je vous souhaite bonne chance pour ce voyage.
Si vous avez des suggestions pour d’autres outils et techniques de débogage, je serais ravi de les entendre dans les commentaires. 🙂
[ad_2]