Как создать автоматический отчет об ошибках в WordPress

Ведение сайта на WordPress часто сопряжено с необходимостью отслеживания ошибок и багов, которые могут возникать в процессе работы. Особенно это актуально для крупных проектов и магазинов, где проблемы могут влиять на конверсию и пользовательский опыт. В этой статье разберем, как создать систему автоматического отчета об ошибках в WordPress, используя плагины и собственный код, чтобы своевременно получать информацию и быстро реагировать на проблемы.

Почему важен автоматический отчет об ошибках в WordPress

Ручной мониторинг ошибок — это затратно и ненадежно. Автоматизация позволяет:

  • Своевременно получать уведомления об ошибках без постоянного контроля;
  • Анализировать причины сбоев и отслеживать их частоту;
  • Повысить стабильность и качество сайта;
  • Снизить время простоя и потери клиентов.

Понимание, что и когда сломалось, помогает быстро исправлять ошибки и улучшать сайт.

Использование плагинов для автоматического сбора ошибок

Для мониторинга ошибок есть несколько полезных плагинов, которые помогут собрать и систематизировать информацию:

1. WP Activity Log

Этот плагин отслеживает все ключевые действия на сайте, включая ошибки PHP и проблемы с базой данных. Умеет отправлять уведомления на email и интегрируется с другими сервисами.

Плюсы:

  • Подробные логи;
  • Фильтрация по типам ошибок;
  • Отправка email и Slack-уведомлений.

Скачать и подробнее: WP Activity Log на WPSHOP

2. Query Monitor

Отличный инструмент для разработчиков, показывающий ошибки PHP, запросы к базе данных, хуки и многое другое. Не отправляет отчеты автоматически, но помогает оперативно выявлять ошибки.

Рекомендуется использовать совместно с другими плагинами для уведомлений.

3. Error Log Monitor

Простой плагин для мониторинга файла журнала ошибок PHP. Позволяет получать уведомления на почту при появлении новых ошибок.

Создаем свой автоматический отчет об ошибках с помощью кода

Если нужно гибкое решение под конкретный проект, можно реализовать автоматический сбор ошибок с отправкой на email или в систему логирования. Рассмотрим пример, как с помощью хуков WordPress отлавливать ошибки PHP и отправлять их на почту администратору.

Отслеживание фатальных ошибок PHP

Добавим в functions.php вашей темы или в плагин следующий код:

function wplesson_shutdown_error_report() {
    $error = error_get_last();
    if ($error && ($error['type'] & (E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR))) {
        $message = "\nОшибка на сайте:\n";
        $message .= "Тип: " . $error['type'] . "\n";
        $message .= "Сообщение: " . $error['message'] . "\n";
        $message .= "Файл: " . $error['file'] . "\n";
        $message .= "Строка: " . $error['line'] . "\n";
        wp_mail(get_option('admin_email'), 'Фатальная ошибка на сайте', $message);
    }
}
add_action('shutdown', 'wplesson_shutdown_error_report');

Этот код ловит фатальные ошибки и отправляет письмо на email администратора сайта. В письме содержится тип ошибки, сообщение, файл и строка, где произошла ошибка.

Логирование предупреждений и уведомлений PHP

Для отслеживания менее критичных ошибок, например предупреждений, можно использовать свой обработчик ошибок:

function wplesson_custom_error_handler($errno, $errstr, $errfile, $errline) {
    $types = [
        E_ERROR => 'Ошибка',
        E_WARNING => 'Предупреждение',
        E_NOTICE => 'Уведомление',
        E_USER_ERROR => 'Пользовательская ошибка',
        E_USER_WARNING => 'Пользовательское предупреждение',
        E_USER_NOTICE => 'Пользовательское уведомление'
    ];

    $type = isset($types[$errno]) ? $types[$errno] : 'Неизвестный тип';
    $message = "\nТип ошибки: $type\nСообщение: $errstr\nФайл: $errfile\nСтрока: $errline\n";

    // Добавим запись в файл лога
    error_log($message, 3, WP_CONTENT_DIR . '/error-log.log');

    // Можно добавить отправку email для критичных ошибок
    if (in_array($errno, [E_ERROR, E_USER_ERROR])) {
        wp_mail(get_option('admin_email'), 'Критичная ошибка на сайте', $message);
    }

    return false; // Передать обработку стандартному обработчику
}
set_error_handler('wplesson_custom_error_handler');

Теперь предупреждения и ошибки будут сохраняться в отдельный файл wp-content/error-log.log. Для критичных ошибок дополнительно отправляется уведомление на почту.

Интеграция с внешними сервисами мониторинга

Для более продвинутого мониторинга можно интегрировать сайт с такими сервисами, как Sentry, Rollbar или Bugsnag. Они собирают ошибки, строят отчеты и уведомляют о проблемах.

Пример интеграции Sentry с WordPress:

require_once 'path/to/sentry/sdk/autoload.php';

\Sentry\init(['dsn' => 'https://your_public_key@o0.ingest.sentry.io/0']);

add_action('shutdown', function() {
    $error = error_get_last();
    if ($error) {
        \Sentry\captureMessage('PHP error: ' . $error['message']);
    }
});

Это позволит централизованно собирать ошибки и анализировать их.

Практические рекомендации по работе с отчетами об ошибках

Чтобы система отчетов была эффективной, следуйте простым правилам:

  • Не перегружайте почту частыми уведомлениями — фильтруйте по важности;
  • Регулярно анализируйте логи и исправляйте выявленные ошибки;
  • Используйте разные уровни логирования для разделения критичных и несущественных проблем;
  • Обязательно тестируйте систему на тестовом сайте перед запуском в продакшен.

Заключение

Автоматический отчет об ошибках — необходимый элемент профессионального сопровождения сайта на WordPress. Используйте готовые плагины для быстрой настройки или внедряйте собственные решения, если нужен максимальный контроль. В сочетании с внешними сервисами мониторинга вы получите надежный инструмент для поддержания стабильности и безопасности вашего проекта.

Если хотите быстро настроить надежный аудит активности и ошибок, обратите внимание на плагин WP Activity Log — он идеально подходит для таких задач.

Как отключить автозагрузку изображений в WordPress для ускорения сайта
13.04.2026
Как использовать хуки WooCommerce для кастомизации отзывов на товары
19.05.2026
Как удалить редко используемые теги в WordPress
29.12.2025
Как исключить конфликт AJAX при создании каскадного выбора в WooCommerce
01.05.2026
Оптимизация базы данных WordPress: удаление старых и неиспользуемых данных
17.02.2026