Верх страницы
Обложка к записи Отключение обработчика фатальных ошибок WordPress
Время для прочтения: 0 мин. 34 сек.

Отключение обработчика фатальных ошибок WordPress

При разработке тем и плагинов под WordPress очень часто требуется отключить встроенный обработчик белого экрана смерти (WSOD), чтобы лицезреть ошибки на экране, а не ловить их на email, как почтовый голубь.

Вся загвоздка заключается в том, что включение вывода ошибок на экран при помощи константы WP_DEBUG не отключает обработчик WSOD.

Отключение при помощи константы

Определите константу WP_DISABLE_FATAL_ERROR_HANDLER в файле конфигурации wp-config.php:

const WP_DISABLE_FATAL_ERROR_HANDLER = true;

Для старых версий PHP:

define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );

Отключение при помощи фильтра

Определите фильтр wp_fatal_error_handler_enabled в функциях вашей темы functions.php:

/**
 * Disable the fatal error handler.
 */
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );

Фильтр wp_fatal_error_handler_enabled имеет приоритет над константой WP_DISABLE_FATAL_ERROR_HANDLER.

Свой обработчик ошибок

Также есть возможность не просто отключить обработчик WSOD, а заменить его на свой. Для этого создайте файл fatal-error-handler.php в папке wp-content:

<?php
class Mihdan_Fatal_Error_Handler {
    public function handle() {}
}
return new Mihdan_Fatal_Error_Handler;

В РНР 7+ можно использовать анонимные классы:

<?php
return new Class(){
    public function handle() {}
};

Расширение обработчика

При большом желании можно расширить стардартный класс обработчик ошибок WP_Fatal_Error_Handler:

class Mihdan_Fatal_Error_Handler extends WP_Fatal_Error_Handler {
}

Ссылки

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, OpenCart, DLE, Laravel, Moonshine, Symfony, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Предыдущая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы