Il debug in WordPress parte da wp-config.php, il file che governa il comportamento diagnostico del sito. Da qui puoi decidere se mostrare gli errori a schermo, registrarli su file oppure limitarti a raccogliere informazioni utili senza esporre dettagli sensibili agli utenti.
La costante più importante è WP_DEBUG: quando vale true, WordPress abilita la modalità di debug e rende più evidenti errori PHP, warning, notice e anomalie generate da core, plugin o tema. Su un sito pubblico va usata con cautela, perché può mostrare informazioni tecniche che non dovrebbero essere visibili ai visitatori.
Configurazione consigliata in produzione
In un ambiente online, la combinazione più sicura è quella che attiva il debug senza mostrare gli errori sul frontend:
WP_DEBUGatrueper attivare la diagnosticaWP_DEBUG_DISPLAYafalseper non mostrare gli errori a schermoWP_DEBUG_LOGatrueper salvare gli errori in un file di log
Con questa impostazione, WordPress scrive i messaggi di errore in wp-content/debug.log, che diventa il riferimento principale per analizzare notice, warning, errori fatali e stack trace. Nella pratica, è spesso il modo più rapido per risalire a un plugin, a un tema o a una funzione personalizzata che sta generando il problema.
Se il sito è in produzione, conviene mantenere il debug attivo solo per il tempo strettamente necessario alla diagnosi e disattivarlo subito dopo aver raccolto le informazioni utili.
Configurazione base consigliata
Un esempio pulito e molto usato è questo:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
Questa configurazione abilita il debug, evita la visualizzazione pubblica degli errori e salva tutto nel log. Se devi analizzare un problema specifico di frontend o di caricamento degli asset, puoi aggiungere temporaneamente anche SCRIPT_DEBUG.
Costanti utili per il debug avanzato
Oltre alle impostazioni base, ci sono alcune costanti molto utili nei casi più tecnici.
SCRIPT_DEBUG: forza il caricamento delle versioni non minificate di JavaScript e CSS, utile per individuare conflitti, errori di sintassi e problemi legati agli asset.SAVEQUERIES: registra le query SQL eseguite durante il caricamento della pagina, utile per scoprire query lente, ripetute o generate in modo inefficiente.WP_DEBUG_LOGcon percorso personalizzato: in alcune installazioni puoi indicare un file di log diverso da quello standard, utile per separare i log di debug da altri file applicativi.
Queste opzioni vanno usate con un obiettivo preciso: trovare un errore, misurare un comportamento o isolare un conflitto. Tenerle attive senza motivo può aumentare il carico e rendere più difficile la lettura dei log.
Esempio completo di configurazione
Se vuoi una base più completa per il troubleshooting, puoi usare una configurazione simile a questa:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
define( 'SCRIPT_DEBUG', true );
Se stai analizzando un problema di database o performance, puoi aggiungere temporaneamente anche SAVEQUERIES, ricordando però di rimuoverlo appena conclusa l’analisi.
Come leggere e interpretare il log
Il file wp-content/debug.log è il primo punto da controllare quando il sito mostra una pagina bianca, un errore 500 o un comportamento inatteso. Le informazioni più utili da cercare sono il tipo di errore, il file coinvolto, la riga di codice e la sequenza di chiamate che ha portato al problema.
- Se l’errore cita un plugin, verifica prima quel componente e prova a disattivarlo temporaneamente.
- Se il problema punta al tema attivo, controlla override, funzioni personalizzate e file modificati di recente.
- Se compaiono errori di memoria, valuta il limite PHP, il carico del sito e la presenza di query o processi troppo pesanti.
Un metodo efficace è confrontare l’orario dell’errore nel log con il momento in cui il problema si è manifestato: questo aiuta a isolare più velocemente la causa reale.
Segnali da non ignorare
Alcuni messaggi meritano attenzione immediata perché spesso anticipano problemi più seri:
- Fatal error: blocca l’esecuzione e può causare schermate bianche o errori 500.
- Warning e Notice: non sempre interrompono il sito, ma indicano codice fragile o incompatibile.
- Deprecated: segnala funzioni o pratiche vecchie che potrebbero smettere di funzionare con aggiornamenti futuri.
Approccio professionale al troubleshooting
Quando il debug serve davvero, conviene procedere in modo ordinato:
- Attiva il debug solo per il tempo necessario e in modo non visibile al pubblico.
- Riproduci il problema con precisione, annotando orario, pagina, azione compiuta e eventuali cambi recenti.
- Controlla il log e individua il primo errore utile, non solo quelli successivi.
- Verifica se la causa è nel core, in un plugin, nel tema o in una personalizzazione.
- Applica una correzione minima, poi testa di nuovo il sito prima di procedere oltre.
Il debug efficace non consiste solo nell’attivare le opzioni giuste: conta soprattutto leggere i sintomi nel posto corretto, cioè log, stack trace, console del browser e comportamento reale del sito.
Buone pratiche operative
Per usare il debug in modo professionale, conviene seguire alcune regole semplici ma fondamentali:
- Conserva sempre una copia di
wp-config.phpprima di modificarlo. - Non lasciare gli errori visibili sul frontend in ambienti pubblici.
- Controlla il log dopo ogni modifica a plugin, tema o configurazione PHP.
- Disattiva le opzioni più pesanti, come
SAVEQUERIES, una volta conclusa l’analisi. - Se il problema è ricorrente, conserva uno storico dei log per confrontare gli eventi nel tempo.
In molti casi è utile affiancare al debug WordPress anche il log PHP del server, perché alcuni errori nascono prima che WordPress riesca a scrivere nel proprio file di diagnostica.
Conclusione
La diagnostica in WordPress funziona meglio quando è impostata con metodo: WP_DEBUG per attivare l’analisi, WP_DEBUG_DISPLAY per proteggere il frontend, WP_DEBUG_LOG per conservare le evidenze e, quando serve, SCRIPT_DEBUG e SAVEQUERIES per approfondire casi specifici. Usate correttamente, queste opzioni permettono di individuare più rapidamente errori di codice, conflitti tra plugin, problemi di tema e anomalie di performance.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.