WordPress
Le débogage
Recherche…
Introduction
https://codex.wordpress.org/Debugging_in_WordPress
Le débogage du code PHP fait partie de tout projet, mais WordPress est livré avec des systèmes de débogage spécifiques conçus pour simplifier le processus, ainsi que pour standardiser le code à travers le noyau, les plugins et les thèmes.
Remarques
Plugins pour le débogage dans WordPress:
WP_DEBUG
WP_DEBUG
est une constante PHP (une variable globale permanente) qui peut être utilisée pour déclencher le mode "debug" dans WordPress. Il est supposé être faux par défaut et est généralement défini sur true dans le fichier wp-config.php
sur les copies de développement de WordPress.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );
WP_DEBUG_LOG
WP_DEBUG_LOG
est un compagnon de WP_DEBUG qui entraîne l'enregistrement de toutes les erreurs dans un fichier journal debug.log situé dans le répertoire / wp-content /. Ceci est utile si vous souhaitez revoir toutes les notifications plus tard ou si vous avez besoin d'afficher les avis générés hors écran (par exemple, lors d'une requête AJAX ou d'une exécution wp-cron).
//enable
define( 'WP_DEBUG_LOG', true );
//disable
define( 'WP_DEBUG_LOG', false );
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY
est un autre compagnon de WP_DEBUG qui contrôle si les messages de débogage sont affichés dans le code HTML des pages ou non. La valeur par défaut est "true", qui affiche les erreurs et les avertissements au fur et à mesure qu'ils sont générés. Si vous définissez cette valeur sur false, toutes les erreurs seront masquées. Ceci doit être utilisé conjointement avec WP_DEBUG_LOG afin que les erreurs puissent être examinées plus tard. Remarque: pour que WP_DEBUG_DISPLAY fasse quelque chose, WP_DEBUG doit être activé (true).
//enable
define( 'WP_DEBUG_DISPLAY', true );
//disable
define( 'WP_DEBUG_DISPLAY', false );
SCRIPT_DEBUG
SCRIPT_DEBUG
est une constante liée qui obligera WordPress à utiliser les versions "dev" des fichiers CSS et JavaScript principaux plutôt que les versions minifiées normalement chargées. Ceci est utile lorsque vous testez des modifications sur des fichiers .js ou .css intégrés. La valeur par défaut est false.
//enable
define( 'SCRIPT_DEBUG', true );
//disable
define( 'SCRIPT_DEBUG', false );
SAUVEGARDES
La définition SAVEQUERIES enregistre les requêtes de base de données dans un tableau et ce tableau peut être affiché pour faciliter l'analyse de ces requêtes. La constante définie comme true entraîne l'enregistrement de chaque requête, la durée d'exécution de la requête et la fonction appelée. REMARQUE: Cela aura un impact sur les performances de votre site. Veillez donc à désactiver cette option lorsque vous ne déboguez pas.
define( 'SAVEQUERIES', true );
Le tableau est stocké dans le
global $wpdb->queries;
Exemple wp-config.php et bonnes pratiques pour le débogage
Le code suivant, inséré dans votre fichier wp-config.php, enregistre toutes les erreurs, notifications et avertissements dans un fichier appelé debug.log dans le répertoire wp-content. Il masquera également les erreurs afin de ne pas interrompre la génération de page.
// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );
// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define( 'SCRIPT_DEBUG', true );
Bonne pratique Si vous souhaitez ajouter des messages personnalisés au débogage du journal, ajoutez le code suivant dans votre plugin ou votre thème.
//Checking is function_exists
if ( !function_exists( 'print_to_log' ) ) {
//function writes a message to debug.log if debugging is turned on.
function print_to_log( $message )
{
if ( true === WP_DEBUG ) {
if ( is_array( $message ) || is_object( $message ) ) {
error_log( print_r( $message, true ) );
} else {
error_log( $message );
}
}
}
}
Voir les journaux dans un fichier séparé
Lorsque vous avez un appel ajax, il est extrêmement difficile d'obtenir un journal depuis l'intérieur de la fonction de rappel. Mais si vous activez le débogage
define('WP_DEBUG', true);
et après cela ajouter
ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
vous aurez un fichier error.log.txt
dans votre dossier racine où se trouvent tous vos journaux. vous pouvez même les connecter avec
error_log( print_r( 'what I want to check goes here', true) );
à l'intérieur de votre code. Cela vous facilitera la vie.