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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow