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

Click here to view original web page at www.kobzarev.com
Обложка к записи Отключение обработчика фатальных ошибок WordPress

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

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

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

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

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

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

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

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

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

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

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

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

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