Далеко не всегда получается написать код сразу и без ошибок. Но для исправления ошибки, прежде всего, требуется её найти. Здесь мы рассмотрим процесс отслеживания ошибок с помощью отладочного журнала WordPress (debug log).
Сокрытие отладочных сообщений от посетителей является важнейшим элементом безопасности сайта. Даже в случае полной уверенности в том, что ваш сайт не генерирует ошибок, либо предупреждений вообще, посетителям может стать доступно нечто, что им знать не нужно.
Именно поэтому следует оставить включённой настройку WP_DEBUG, не показывая ошибок на страницах сайта, а производя их запись в особый файл «Журнал отладки» для дальнейшего анализа. Об этом и пойдет речь далее.
Настройка
Для разрешения генерации отладочной информации и записи в журнал без выведения на страницах сайта, потребуется определённое изменение файла wp-config.php.
1 2 3 |
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', false ); define( 'WP_DEBUG_LOG', true ); |
Фатальные ошибки («белый экран смерти») при этом скрыть невозможно.
Просмотр журнала отладки
Файл, в котором содержится отладочная информация, называется debug.log. Он располагается в корневом каталоге вашего сайта. С помощью любого текстового редактора вы можете его читать и удалять из него информацию. Однако этот способ этот не слишком удобен, особенно при расположении журнала на сервере под нагрузкой.
Есть плагины, которые существенно упрощают работу с журналом отладки, но иногда (например, если сайт недоступен) нужно работать с файлом журнала напрямую.
Есть ряд инструментов, помогающих в работе с журналом отладки из административной панели сайта. Например, бесплатный плагин Log Viewer дает возможность читать и чистить журнал. В сочетании с плагином Debug Bar вы сможете работать с журналом в отладочной панели на любой странице сайта.
Панель отладки не стоит применять на рабочем сервере, однако польза её в процессе разработки неоценима. Установка плагинов Log Viewer и Debug Bar может производиться при помощи установщика плагинов, а также как часть комплексного плагина Developer.
Как выглядит журнал.
Любое событие, сгенерированное WP помечается временем в формате UTC.
Запись в журнал отладки произвольной информации
В определённых случаях оказывается полезным выводить дополнительную информацию в журнал, не сообщающую об ошибке, а просто помогающую в написании собственного кода. Для этого в PHP предусмотрена функция error_log().
Данная функция не предусматривает форматирования, поэтому можно создать собственную обёртку над error_log, форматирующую объекты и переменные, записываемые в журнал с помощью функции print_r(). Вот как она может выглядеть.
1 2 3 4 5 6 7 8 9 |
if ( ! function_exists('write_log')) { function write_log ( $log ) { if ( is_array( $log ) || is_object( $log ) ) { error_log( print_r( $log, true ) ); } else { error_log( $log ); } } } |
Не имеет смысла размещать данный код в файл functions.php вашей темы, поскольку при отладке сайта, возможно, произойдёт переключение темы на стандартную и потеря доступа к нему. Поэтому код следует оформить в виде плагина. Для этого нужно создать файл в вашем каталоге плагинов, добавить в него заголовок плагина и вышеприведённый код. Заголовок может выглядеть так:
1 2 3 |
/* Plugin Name: Log Error */ |
Функция, только что созданная нами, имеет многочисленные варианты применения. Ее работу легко проверить, написав следующий код.
1 |
write_log( 'Значение для записи' ); |
У нас вы можете заказать разработку сайтов на Wordpress или доработку сайта Вордпресс.