Podemos modificar a saída bool da wp_is_fatal_error_handler_enabled()
função de duas maneiras:
Constante
Defina a WP_DISABLE_FATAL_ERROR_HANDLER
constante como true
dentro do wp-config.php
arquivo:
/**
* Disable the fatal error handler.
*/
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
ou
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
Filtro
Use wp_fatal_error_handler_enabled
filtro bool:
/**
* Disable the fatal error handler.
*/
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
Notas
Ver bilhete # 44458
O wp_fatal_error_handler_enabled
filtro substituirá o valor da WP_DISABLE_FATAL_ERROR_HANDLER
constante.
Também esteja atento a uma possível confusão booleana com a constante desativação, mas com o filtro ativado .
Nos meus testes, a abordagem de filtro, como um plug - in obrigatório , não está funcionando conforme o esperado, então estou usando a constante. Espero que eu possa analisar isso mais a fundo.
Também é possível adicionar um arquivo drop-in personalizado fatal-error-handler.php
ao wp-content
diretório ( src ), para substituir a WP_Fatal_Error_Handler
classe conforme necessário. Devemos usar um nome de classe diferente e ele deve definir o handle()
método como a função de desligamento registrada .
Um exemplo simples para desativá-lo seria substituir a classe do manipulador de erros padrão por uma classe personalizada que não faz nada:
<?php
class WPSE_Fatal_Error_Handler {
public function handle() {}
}
return new WPSE_Fatal_Error_Handler;
A classe anônima no PHP 7+ parece funcionar também:
<?php
return new Class(){
public function handle() {}
};
Também pode estender a WP_Fatal_Error_Handler
classe padrão, se necessário.
Depois, há a WP_SANDBOX_SCRAPING
constante. Veja # 46045
Definir WP_DEBUG
como verdadeiro não desativará a proteção WSOD. Isso ocorre por design. Veja # 46825