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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow