Мы можем изменить вывод функции boolwp_is_fatal_error_handler_enabled()
двумя способами:
постоянная
Установите WP_DISABLE_FATAL_ERROR_HANDLER
константу true
в wp-config.php
файле:
/**
* Disable the fatal error handler.
*/
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
или
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
Фильтр
Используйте wp_fatal_error_handler_enabled
фильтр bool:
/**
* Disable the fatal error handler.
*/
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
Заметки
Смотри билет # 44458
wp_fatal_error_handler_enabled
Фильтр будет перекрывать значение WP_DISABLE_FATAL_ERROR_HANDLER
константы.
Также следите за возможную путаницу BOOL с постоянным отключением но фильтр позволяет .
В моем тестировании подход фильтра, как обязательный плагин, не работает должным образом, поэтому вместо него я использую константу. Надеюсь, я смогу изучить это дальше.
Можно также добавить пользовательскую раскрывающийся в файле fatal-error-handler.php
в wp-content
каталог ( Src ), чтобы переопределить WP_Fatal_Error_Handler
класс по мере необходимости. Мы должны использовать другое имя класса, и он должен определить handle()
метод как зарегистрированную функцию завершения работы .
Простым примером его отключения является переопределение класса обработчика ошибок по умолчанию на собственный, который ничего не делает:
<?php
class WPSE_Fatal_Error_Handler {
public function handle() {}
}
return new WPSE_Fatal_Error_Handler;
Анонимный класс в PHP 7+ также работает:
<?php
return new Class(){
public function handle() {}
};
Это может также расширить WP_Fatal_Error_Handler
класс по умолчанию, если это необходимо.
Тогда есть WP_SANDBOX_SCRAPING
константа. Смотри # 46045
Установка значения WP_DEBUG
true не приведет к отключению защиты WSOD. Это по замыслу. Смотрите # 46825