Отладка WordPress — важный этап при разработке и поддержке сайтов. Одним из главных инструментов для поиска ошибок и проблем является лог ошибок (error log). В этой статье мы подробно рассмотрим, как включить и использовать лог ошибок в WordPress, как анализировать записи, а также приведём примеры кода для кастомизации логирования на вашем сайте с доменом wperror.ru.
Что такое WP Error Log и зачем он нужен
WP Error Log — это файл, куда записываются сообщения об ошибках, предупреждения и уведомления, возникающие в процессе работы WordPress. Включение логирования ошибок позволяет:
- Отслеживать PHP ошибки и предупреждения, которые могут вызывать проблемы на сайте;
- Диагностировать проблемы с плагинами и темами;
- Понять причины сбоев и багов, недоступности страниц и других ошибок;
- Улучшить качество кода и безопасность сайта.
Без включенного лога многие ошибки остаются незамеченными или проявляются лишь внешне, что затрудняет поиск и исправление причин.
Как включить лог ошибок в WordPress
По умолчанию WordPress выводит ошибки на экран только при включенном режиме отладки. Для более безопасной и удобной работы обычно включают запись ошибок в файл, а вывод на экран отключают.
Чтобы включить логирование ошибок, выполните следующие шаги:
- Откройте файл
wp-config.phpв корне вашего сайта. - Найдите или добавьте следующие строки перед строкой
/* That's all, stop editing! Happy blogging. */:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);Объяснение:
WP_DEBUG— включает режим отладки;WP_DEBUG_LOG— включает запись всех сообщений об ошибках в файлwp-content/debug.log;WP_DEBUG_DISPLAY— отключает вывод ошибок на экран;@ini_set('display_errors', 0);— дополнительная настройка для предотвращения вывода ошибок.
После этого все PHP-ошибки и предупреждения будут аккуратно сохраняться в файл debug.log. Это удобнее и безопаснее, чем видеть ошибки на сайте.
Где находится файл логов и как его читать
Файл debug.log хранится в папке wp-content. Чтобы просмотреть его содержимое, можно использовать:
- FTP/SFTP клиент — скачать и открыть файл в текстовом редакторе;
- Файловый менеджер в панели хостинга;
- Плагины для просмотра логов прямо в админке WordPress.
В файле вы увидите записи с указанием даты, времени и типа ошибки, а также трассировку вызовов, что поможет понять, где именно произошла ошибка.
Пример записи в debug.log
[28-Jun-2024 14:23:45 UTC] PHP Warning: Undefined variable $example in /home/user/public_html/wp-content/themes/mytheme/functions.php on line 55Здесь ясно видно, что в файле functions.php на 55-й строке используется неинициализированная переменная, что может привести к сбоям.
Как использовать плагины для работы с логами ошибок
Если вам неудобно каждый раз заходить в файлы сайта, можно использовать плагины, которые помогут просматривать логи прямо в админке и даже отправлять уведомления при появлении ошибок.
Популярные плагины для логирования ошибок
- WP Log Viewer — простой плагин для просмотра файла
debug.logв админке; - Query Monitor — мощный инструмент для диагностики запросов, ошибок PHP, хуков, плагинов и тем;
- Log Deprecated Notices — помогает выявлять устаревшие функции и методы в коде.
Установка плагина происходит стандартным способом через меню Плагины > Добавить новый. После активации вы найдете новые страницы в админке для просмотра и анализа ошибок.
Как создавать кастомные логи с помощью кода
Иногда стандартного логирования недостаточно, и нужно записывать в лог собственные сообщения для отладки своих функций и плагинов. В WordPress для этого удобно использовать функцию error_log().
Пример функции для записи в лог с префиксом wperror_:
function wperror_log_message($message) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[wperror] ' . print_r($message, true));
}
}Использовать её просто:
wperror_log_message('Тестовое сообщение для лога');
// Или с данными массива
wperror_log_message(array('post_id' => 123, 'status' => 'error'));Такие записи будут появляться в debug.log с префиксом [wperror], что облегчает поиск нужных сообщений среди других ошибок.
Пример использования кастомного лога для отладки AJAX-запроса
add_action('wp_ajax_wperror_test_ajax', 'wperror_test_ajax_handler');
function wperror_test_ajax_handler() {
wperror_log_message('AJAX запрос получен');
$param = isset($_POST['param']) ? sanitize_text_field($_POST['param']) : '';
wperror_log_message('Параметр: ' . $param);
if (empty($param)) {
wperror_log_message('Ошибка: параметр пустой');
wp_send_json_error('Параметр не задан');
}
// Выполняем логику
wperror_log_message('AJAX запрос обработан успешно');
wp_send_json_success('OK');
}Такой подход очень помогает в сложных сценариях, когда нужно понять ход выполнения функций и выявить ошибки.
Рекомендации по работе с логами ошибок
Несколько советов, которые помогут эффективно использовать логи ошибок в WordPress:
- Регулярно проверяйте файл debug.log, особенно после обновлений плагинов, темы или ядра WordPress;
- Отключайте WP_DEBUG на продакшене или используйте его только для логирования без вывода ошибок на экран, чтобы не раскрывать конфиденциальную информацию;
- Используйте фильтры и условия для записи в лог только важных сообщений, чтобы файл не разрастался слишком быстро;
- Создавайте резервные копии логов, если ведёте длительную отладку;
- Используйте инструменты мониторинга, которые смогут автоматически уведомлять вас о критичных ошибках.
Правильное ведение и анализ логов ошибок позволяет значительно ускорить выявление и устранение проблем, что делает ваш сайт стабильнее и безопаснее.