Pour debugger WordPress, il existe la constante WP_DEBUG que l’on trouve dans le fichier wp_config.php situé à la racine du site.
Pour activer le mode debug il convient de passer cette constant WP_DEBUG à true, ce qui aura pour conséquence d’afficher sur les pages de votre site les erreurs ou avertissements.
Pas très joli lorsque le site est live, on peut alors utiliser les variables WP_DEBUG_DISPLAY que l’on initialise à FALSE (aucune notification ne sera affichée en front) et WP_DEBUG_LOG dont l’initialisation à TRUE permet d’afficher les erreurs et avertissements dans le fichier /wp-content/debug.log que l’on trouvera dans le répertoire /wp-content situé à la racine de l’installation WordPress.
En résumé, chercher WP_DEBUG dans le fichier wp_config.php qui par défaut est initialisé à FALSIE, initialisez le à TRUE et ajouter les 2 lignes suivantes WP_DEBUG_DISPLAY et WP_DEBUG_LOG .
define('WP_DEBUG', true); define( 'WP_DEBUG_DISPLAY', false ); define( 'WP_DEBUG_LOG', true );
Il est possible de modifier la localisation du fichier debug.log :
define( 'WP_DEBUG_LOG', '/debug/debug.log' );
Avertissement : Le fichier debug.log est généré automatiquement lors d’un avertissement ou erreur PHP sur votre site. Si vous ne trouvez pas ce fichier dans votre arborescence, provoquez une erreur PHP.
Écrire dans le fichier debug.log sous WordPress
Il est possible d’écrire dans le fichier debug.log à l’aide de la fonction suivante
if (!function_exists('write_log')) { function write_log($log) { if (WP_DEBUG === TRUE) { if (is_array($log) || is_object($log)) { error_log(print_r($log, true)); } else { error_log($log); } } } } write_log('J\'écris ici ce que je veux');
Écrire dans un fichier .log sous WordPress
Indépendemment de WP_DEBUG et du fichier debug.log, voici une fonction qui permet d’écrire dans un fichier log appelé ici my_debug.log et qui va se créer automatiquement, ici à la racine (ABSPATH) de votre site.
if (!function_exists('updatelog')) { function updatelog($str) { if( is_string($str) ) { $logFile = fopen(ABSPATH.'my_debug.log', 'a'); fputs($logFile, $str.PHP_EOL); fclose($logFile); } } } updatelog ('J\'écris ici ce que je veux');
Laisser un commentaire
Participez-vous à la discussion?N'hésitez pas à contribuer!