WordPress
Debug
Ricerca…
introduzione
https://codex.wordpress.org/Debugging_in_WordPress
Il debug di codice PHP fa parte di qualsiasi progetto, ma WordPress viene fornito con specifici sistemi di debug progettati per semplificare il processo e standardizzare il codice attraverso il nucleo, i plugin e i temi.
Osservazioni
Plugin per il debug in WordPress:
WP_DEBUG
WP_DEBUG
è una costante PHP (una variabile globale permanente) che può essere utilizzata per attivare la modalità di "debug" in tutto WordPress. Si presume che sia falso di default e di solito è impostato su true nel file wp-config.php
sulle copie di sviluppo di WordPress.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );
WP_DEBUG_LOG
WP_DEBUG_LOG
è un compagno di WP_DEBUG che fa sì che anche tutti gli errori vengano salvati in un file di registro debug.log all'interno della directory / wp-content /. Ciò è utile se si desidera rivedere tutte le notifiche in un secondo momento o è necessario visualizzare le notifiche generate fuori schermo (ad esempio durante una richiesta AJAX o esecuzione di wp-cron).
//enable
define( 'WP_DEBUG_LOG', true );
//disable
define( 'WP_DEBUG_LOG', false );
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY
è un altro compagno di WP_DEBUG che controlla se i messaggi di debug sono visualizzati all'interno dell'HTML delle pagine o meno. L'impostazione predefinita è 'true' che mostra gli errori e gli avvertimenti man mano che vengono generati. Impostando su false si nascondono tutti gli errori. Questo dovrebbe essere usato insieme a WP_DEBUG_LOG in modo che gli errori possano essere riesaminati in seguito. Nota: per WP_DEBUG_DISPLAY fare qualsiasi cosa, WP_DEBUG deve essere abilitato (true).
//enable
define( 'WP_DEBUG_DISPLAY', true );
//disable
define( 'WP_DEBUG_DISPLAY', false );
SCRIPT_DEBUG
SCRIPT_DEBUG
è una costante correlata che SCRIPT_DEBUG
a WordPress di utilizzare le versioni "dev" dei file CSS e JavaScript core anziché delle versioni miniate normalmente caricate. Ciò è utile quando si testano le modifiche a qualsiasi file .js o .css incorporato. Il valore predefinito è falso.
//enable
define( 'SCRIPT_DEBUG', true );
//disable
define( 'SCRIPT_DEBUG', false );
SAVEQUERIES
La definizione SAVEQUERIES salva le query del database in un array e tale array può essere visualizzato per consentire l'analisi di tali query. La costante definita come true fa sì che ogni query venga salvata, quanto tempo impiega la query per l'esecuzione e quale funzione la chiama. NOTA: questo avrà un impatto sulle prestazioni sul tuo sito, quindi assicurati di disattivarlo quando non esegui il debug.
define( 'SAVEQUERIES', true );
La matrice è memorizzata nel
global $wpdb->queries;
Esempio di wp-config.php e buone pratiche per il debug
Il seguente codice, inserito nel file wp-config.php, registrerà tutti gli errori, le avvertenze e gli avvertimenti in un file chiamato debug.log nella directory del wp-content. Nasconde anche gli errori in modo che non interrompano la generazione della pagina.
// 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 );
Buona pratica Se si desidera aggiungere messaggi personalizzati al registro di debug, aggiungere il codice seguente nel proprio plug-in o tema.
//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 );
}
}
}
}
Vedi i log in un file separato
Quando si ha una chiamata Ajax, è estremamente difficile ottenere un registro dall'interno della funzione di callback. Ma se abiliti il debug
define('WP_DEBUG', true);
e poi dopo quell'aggiunta
ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
si avrà un file error.log.txt
nella cartella principale in cui si trovano tutti i log. puoi anche registrarli con
error_log( print_r( 'what I want to check goes here', true) );
dentro il tuo codice Questo renderà la tua vita molto più facile.