Ми можемо змінювати виведення функції 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
константи.
Також слідкуйте за можливою плутаниною булів із постійним вимкненням, але фільтр дозволяє .
У моєму тестуванні підхід до фільтру як плагін, який потрібно використовувати , не працює, як очікувалося, тому я використовую константу замість цього. Сподіваюся, я можу розглянути це далі.
Можна також додати призначену для користувача розкривається в файлі 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
як істинне не відключить захист WSOD. Це за дизайном. Див. # 46825