Les outils de debug
Lors de la création d’un site web avec WordPress, nous pouvons être confrontés à des problématiques de fonctionnement ou nous devons debugguer/comprendre une fonctionnalité. Pour cela, différents outils existent pour nous aider à ouvrir les entrailles de WordPress, voici ceux qui je connais et utilise (ou presque).
Mode Debug
Avant toute chose, lorsque l’on développe ou que l’on mette en place un WordPress, on doit se mettre en mode Debug, afin que toutes les erreurs nous soient bien remontées (oui même pour vous qui n’êtes pas développeur,).
Je suis estomaqué par le nombre d’extensions que l’on active et qui provoque une erreur. Cela montre la plupart du temps que les développeurs n’ont pas activé le mode debug lors de leur développement.
Pour cela, dans le fichier wp-config.php
, ajouter les lignes suivantes :
[pastacode lang= »php » manual= »%3C%3Fphp%0A%2F%2F%20Enable%20WP_DEBUG%20mode%0Adefine(%20’WP_DEBUG’%2C%20true%20)%3B%0A%0A%2F%2F%20Enable%20Debug%20logging%20to%20the%20%2Fwp-content%2Fdebug.log%20file%0Adefine(%20’WP_DEBUG_LOG’%2C%20WP_DEBUG%20)%3B%0A%0A%2F%2F%20Disable%20display%20of%20errors%20and%20warnings%20%0Adefine(%20’WP_DEBUG_DISPLAY’%2C%20false%20)%3B%0A%40ini_set(%20’display_errors’%2C%200%20)%3B%0A%0A%2F%2F%20Use%20dev%20versions%20of%20core%20JS%20and%20CSS%20files%20(only%20needed%20if%20you%20are%20modifying%20these%20core%20files)%0Adefine(%20’SCRIPT_DEBUG’%2C%20WP_DEBUG%20)%3B%0A%0A%2F%2F%20Save%20all%20queries%20executed%20%0Adefine(%20’SAVEQUERIES’%2C%20true%20)%3B » message= »WP_DEBUG a true » highlight= »3″ provider= »manual »/]
La ligne la plus importante étant évidemment la ligne 3.
Pour en savoir plus, je vous renvois vers la documention WP, le codex : https://codex.wordpress.org/Debugging_in_WordPress
Les extensions debug bar
Debug bar
https://wordpress.org/plugins/debug-bar/
Le premier du nom est donc Debug bar, il permet de lister pas mal d’informations sur l’environnement, liste l’ensemble des requêtes SQL. Et quelques infos sur le cache.
Ce n’est pas un plugin qui donne beaucoup d’informations, par contre il est surtout utilisé comme base pour pas mal d’autres plugins, en voici un liste non exhaustive :
Debug Bar Actions and Filters Addon
https://wordpress.org/plugins/debug-bar-actions-and-filters-addon/
Celui-ci permet de lister tous les hooks (Actions et Filtres) utilisé lors de l’affichage de page.
Debug bar Slow action
https://wordpress.org/plugins/debug-bar-slow-actions/
Pour moi celui là est un des plus important, surtout si on apprecie de faire de la performance. il permet de voir les différents temps de chargement et surtout ceux qui sont les plus long. Il permet de déterminer si un plugin n’est pas correctement utilisé.
A utiliser après avoir déterminer que ce ne sont pas les ressources qui ralentissent, mais bien la génération du php.
Debug Bar Transients
https://wordpress.org/plugins/debug-bar-transients/
Celui-ci permet de voir la liste des transients présent en base de données et il y a une option pour les purger.
Il y en a plein d’autres, vous les retrouverez à cette adresse : https://wordpress.org/plugins/search/Debug+Bar/
Debug « unexpected output » During Plugin Activation
https://wordpress.org/plugins/debug-plugin-activation-errors/
Je l’utilise rarement mais peut être très utile lorsque vous activez un plugin et qu’une erreur comme celle-ci survient (le plugin est désactivé dans la foulé) :
“The plugin generated ### characters of unexpected output during activation. »
Il est bien joli ce message mais il ne nous aide pas à savoir d’ou vient cette erreur (du plugin activé, ça c’est sûr). C’est là qu’intervient ce plugin de debug qui permet de nous donner plus d’information sur l’erreur survenu.
Query monitor
https://wordpress.org/plugins/query-monitor/
Le must have pour le debug SQL. il permet de lister l’ensemble des requêtes SQL exécutées sur la page en court et nous donne le script d’appel et le temps d’exécution. Il est plus complet que Debug bar. Il donne pas mal d’autres informations comme la liste des requêtes lentes et bien d’autres choses que je vous laisse découvrir (trop long à lister).
User Switching
https://wordpress.org/plugins/user-switching/
Très pratique, il vous permet de prendre le compte d’un autre utilisateur et de contrôler celui-ci, de comprendre ce que peu voir un collègue ou un client à l’écran. Car oui, tout le monde ne voit pas la même chose.
Je vous conseil aussi très fortement aussi : User Switching in Admin Bar qui étend le plugin en ajoutant un accès direct dans l’admin bar (sinon c’est compliqué pour revenir une rôle « éditeur » vers un rôle « admin ».
Log Deprecated Notices
https://wordpress.org/plugins/log-deprecated-notices/
Cette extension est vraiment dédié aux développeurs, il permet de voir si des fonctions utilisées sont dépréciées. On ne connait pas toutes les fonctions de WordPress et encore moins celles qui sont dépréciées, cela permet d’avoir un œil sur le vieux code utilisé.
What The File
https://wordpress.org/plugins/what-the-file/
Un petit plugin sympa qui permet de s’y retrouver dans la hiérarchie des templates des thèmes de WordPress. Il vous donne simplement le fichier utilisé.
Hookr
Alors celui-ci c’est du lourd, dans tous les sens du terme. Tout d’abord, il n’est pas sur le répertoire d’extensions de WordPress (https://wordpress.org/plugins/), je ne comprend pas trop pourquoi. Enfin quoi qu’il en soit, il est gratuit et rend de grands services.
Il permet de lister tous les hooks (actions et filtres) utilisés sur une page, comme Debug Bar Actions and Filters Addon vous allez me dire. Et bien non, il fait bien plus que ça. Il les affiche directement sur la page, il ajoute un couche et chaque point utilisé est un filtre exécuté, en survolant, il nous donne le nom du filtre. De plus il gère bon nombre de filtre de plugins existants (liste exhaustive).
Ce plugin est très utile lors du développement d’autres plugins, il nous permet de voir quel hook existe à quel endroit (surtout en back-office).
WP Crontrol
https://wordpress.org/plugins/wp-crontrol/
Ce plugin permet de garder une vue sur les tâches CRON, Les tâches cron permettent de lancer des tâche régulière, comme la vérification des mise à jours du coeur de WordPress ou bien la publication programmé d’articles.
WP mail Logging
https://wordpress.org/plugins/wp-mail-logging/
Si jamais vous paramétrez des envois d’emails, cette extension va largement vous aider. Elle permet de lister l’ensemble des emails envoyés par WordPress. Mais aussi de voir le contenu. Parfait lors de la conception et le suivi d’envois d’email.
Il en existe presque un outil de debug pour chaque partie de WordPress. Vous, lesquels utilisez vous ?