Possiamo modificare l' output bool della wp_is_fatal_error_handler_enabled()
funzione in due modi:
Costante
Imposta la WP_DISABLE_FATAL_ERROR_HANDLER
costante true
all'interno del wp-config.php
file:
/**
* Disable the fatal error handler.
*/
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
o
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
Filtro
Usa wp_fatal_error_handler_enabled
filtro bool:
/**
* Disable the fatal error handler.
*/
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
Appunti
Vedi biglietto n. 44458
Il wp_fatal_error_handler_enabled
filtro sovrascriverà il valore della WP_DISABLE_FATAL_ERROR_HANDLER
costante.
Fai anche attenzione a una possibile confusione booleana con la disabilitazione costante ma l' abilitazione del filtro .
Nel mio test l'approccio del filtro, come plug -in da non usare , non funziona come previsto, quindi sto usando la costante. Spero di poter approfondire ulteriormente questo aspetto.
Si può anche aggiungere un file drop-in personalizzatofatal-error-handler.php
nella wp-content
directory ( src ), per sovrascrivere la WP_Fatal_Error_Handler
classe secondo necessità. Dobbiamo usare un nome di classe diverso e deve definire il handle()
metodo come funzione di arresto registrata .
Un semplice esempio per disabilitarlo sarebbe quello di sovrascrivere la classe del gestore degli errori predefinita con una classe personalizzata che non fa nulla:
<?php
class WPSE_Fatal_Error_Handler {
public function handle() {}
}
return new WPSE_Fatal_Error_Handler;
Anche la classe anonima in PHP 7+ sembra funzionare:
<?php
return new Class(){
public function handle() {}
};
Potrebbe anche estendere la WP_Fatal_Error_Handler
classe predefinita , se necessario.
Poi c'è la WP_SANDBOX_SCRAPING
costante. Vedi # 46045
L'impostazione WP_DEBUG
come vero non disabiliterà la protezione WSOD. Questo è di progettazione. Vedi # 46825