
Il debugging è una fase essenziale nella gestione di un sito WordPress, soprattutto per individuare e risolvere problemi di prestazioni, compatibilità e sicurezza.
In questo articolo vediamo quali strumenti e plugin ci possono tornare utili per risolvere i vari problemi.
Indice
Plugin Consigliati per il Debugging
Consiglio due plugin:
- Query Monitor
- Debug Bar
- WP Debugging
Vediamoli uno per uno
Query Monitor

Il plugin Query monitor è un ottimo plugin per sviluppatori WordPress.
Permette di debuggare:
- query al database (una tra le funzionalità più potenti)
- errori php
- hooks e actions
- blocchi dell’editor a blocchi,
- scripts e stylesheets registrati e caricati
- chiamate REST API
- chiamate Ajax
Non registra errori nel tempo, quindi è molto utile solo per il debugging in tempo reale.
Debug Bar

Il plugin Debug Bar, sviluppato da WordPress.org, aggiunge un menu di debug in alto a destra alla barra di amministrazione che mostra query, cache e altre informazioni utili per la fase di debugging.
Per abilitare il debug in WordPress e le sue funzionalità dovrai inserire questi due codici nel wp-config.php che si trova nel root del tuo sito WordPress:
define( 'WP_DEBUG', true );
define( 'SAVEQUERIES', true );
Quando WP_DEBUG è impostato a true vengono tracciati anche i warning e i notice PHP.
Quando SAVEQUERIES è abilitata vengono tracciate e visualizzate le query.
La cosa che mi piace è che mostra immediatamente la cosa principale quando devo ottimizzare le prestazioni: total queries e total query time.
WP Debugging

Il plugin WP Debugging aggiunge in automatico le costanti di debug in wp-config.php all’attivazione del plugin e le rimuove quando viene deattivato.
In questo modo si può gestire l’attivazione della modalità debug direttamente dal pannello di amministrazione.
Tramite la pagine di impostazioni del plugin si può anche scegliere se visualizzare a schermo i log di errore/warning oppure se stamparli solo in /wp-content/debug.log, ricreando in automatico questo codice:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
Strumenti di Log e Monitoraggio
Oltre ai plugin forniti dalla community, ci sono altri strumenti molto interessanti.
- WP_DEBUG e WP_DEBUG_LOG
- WP-CLI Debug Mode
WP_DEBUG e WP_DEBUG_LOG
WordPress mette a disposizione un sistema di logging nativo, attivabile inserendo all’interno del file di configurazione wp-config.php questo codice:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'SCRIPT_DEBUG', true );
define( 'WP_DEBUG', true ): attiva la modalità di debuggingdefine( 'WP_DEBUG_LOG', true ): scrive il i log nel filedebug.lognella cartellawp-contentdefine( 'WP_DEBUG_DISPLAY', true ): se impostato afalse, non mostra a schermo gli errori e i warningsdefine( 'SCRIPT_DEBUG', true ): utilizza le versioni dev dei file JS e CSS principali (necessarie solo se si stanno modificando questi file principali)
Dove inserire questo codice?
Inseriscilo prima di /* That's all, stop editing! Happy blogging. */ che trovi a fondo del file wp-config.php.
Se nel tuo file è già presente il codice define( 'WP_DEBUG', false ), allora sovrascrivi il codice lì.
Quindi WP_DEBUG è una costante PHP che viene usata per attivare/disattivare la modalità di debugging nativa in WordPress. È sempre consigliabile attivare questa funzionalità sui siti di staging o locali, e non su quelli live.
Attivando il debug verranno mostrati gli errori, i warnings e i notices.
Se avrai necessità di stampare dei tuoi log, usa la funzione:
error_log();
Purtroppo error_log è un po’ limitato soprattutto quando devi loggare array, quindi WordPress suggerisce di usare questo codice per fare logging:
function write_log( $data ) {
if ( true === WP_DEBUG ) {
if ( is_array( $data ) || is_object( $data ) ) {
error_log( print_r( $data, true ) );
} else {
error_log( $data );
}
}
}
Per aggiungere il codice viene suggerito di creare un plugin apposito oppure di usare un plugin di code snippets. Io normalmente aggiungo questo codice nel file functions.php del tema child se devo fare dei test veloci.
Ora puoi scrivere i tuoi log così:
write_log( 'DEBUG TEXT' );
write_log( $variable );
Infine ti potrebbe tornare utile anche avere delle informazioni sulle query.
Aggiungendo:
define( 'SAVEQUERIES', true );
Ogni query verrà salvato con il suo tempo di esecuzione e la funzione che l’ha chimata.
L’array di query si potrà vedere nella variabile globale $wpdb->queries.
WP-CLI Debug Mode
Permette di eseguire il debug direttamente dalla riga di comando.
WP-CLI (WordPress Command Line Interface) è un’interfaccia che permette di gestire WordPress da riga di comando.
Per abilitare il debug via WP-CLI bisogna digitare da riga di comando:
wp --debug
Ecco il codice per visualizzare il messaggio di debug con il prefisso “Debug: ” quando si usa –debug.
WP_CLI::debug( $message, $group = false )
- $message (string|WP_Error|Exception|Throwable) Messaggio di debug.
- $group (string|bool) Organizza il messaggio di debug in gruppi
- @return (null)


