Как сделать автоматический отчёт по ошибкам WordPress с уведомлениями

Отслеживание ошибок на сайте WordPress — важная задача для поддержания его стабильной работы и быстрого реагирования на проблемы. В этой статье рассмотрим, как настроить автоматический сбор и отправку отчётов по ошибкам, используя встроенные возможности PHP и WordPress, а также популярные плагины. Это позволит вам своевременно получать уведомления и анализировать сбои без постоянного ручного мониторинга.

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

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

Ручное включение WP_DEBUG и просмотр логов — это неудобно и требует постоянного контроля. Автоматизация процесса поможет быстро выявлять критические сбои и оперативно их исправлять.

Основные преимущества автоматизированных отчётов:

  • Экономия времени — не нужно постоянно проверять логи.
  • Своевременное уведомление — ошибки приходят сразу на почту или в мессенджер.
  • История ошибок — можно анализировать повторяющиеся проблемы.

Настройка автоматического логирования ошибок в WordPress

Первым шагом включим логирование ошибок PHP и WordPress. Для этого добавим в wp-config.php следующие строки:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('log_errors', 'On');
@ini_set('error_log', WP_CONTENT_DIR . '/debug.log');

Эти настройки включают режим отладки, записывают ошибки в файл wp-content/debug.log, и отключают вывод ошибок пользователям.

Теперь сервер будет сохранять все ошибки и предупреждения в лог. Далее нужно автоматизировать отправку этого файла на email или в систему уведомлений.

Как отправлять отчёты об ошибках по email автоматически

Для отправки логов по почте можно использовать WP-Cron — встроенный планировщик заданий WordPress. Добавим функцию, которая будет читать лог и отправлять его на email админа. Пример кода для файла functions.php вашей темы или плагина:

function wptest_send_error_log_report() {
    $log_file = WP_CONTENT_DIR . '/debug.log';
    if (!file_exists($log_file)) {
        return;
    }

    $log_size = filesize($log_file);
    if ($log_size === 0) {
        // Лог пустой, отправлять нечего
        return;
    }

    $log_content = file_get_contents($log_file);
    if (!$log_content) {
        return;
    }

    $to = get_option('admin_email');
    $subject = 'Отчёт об ошибках WordPress на сайте ' . get_bloginfo('name');
    $headers = ['Content-Type: text/plain; charset=UTF-8'];

    wp_mail($to, $subject, $log_content, $headers);

    // После отправки очищаем лог
    file_put_contents($log_file, '');
}

// Регистрируем событие в WP-Cron, если еще не зарегистрировано
if (!wp_next_scheduled('wptest_error_log_report_hook')) {
    wp_schedule_event(time(), 'daily', 'wptest_error_log_report_hook');
}

add_action('wptest_error_log_report_hook', 'wptest_send_error_log_report');

Этот код будет ежедневно отправлять содержимое файла логов на email администратора и очищать лог. Вы можете изменить периодичность, задав 'hourly' (ежечасно) или 'twicedaily' (дважды в день).

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

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

  • WP Activity Log — мониторинг активности и ошибок, с возможностью отправки email.
  • Query Monitor — инструмент разработки, который помогает выявлять PHP ошибки и медленные запросы, но без автоматической рассылки.
  • Clearfy Pro — плагин для оптимизации и безопасности, содержит модули для расширенного логирования и уведомлений.

Для отправки уведомлений в мессенджеры (Telegram, Slack) можно использовать дополнительные плагины, например WP Telegram или настроить отправку через вебхуки с помощью собственного кода.

Пример отправки ошибки в Telegram через webhook и WP-Cron

function wptest_send_telegram_error_report() {
    $log_file = WP_CONTENT_DIR . '/debug.log';
    if (!file_exists($log_file) || filesize($log_file) === 0) {
        return;
    }

    $log_content = file_get_contents($log_file);
    if (!$log_content) {
        return;
    }

    $bot_token = 'ваш_токен_бота';
    $chat_id = 'ваш_chat_id';
    $message = urlencode("Отчёт об ошибках на сайте " . get_bloginfo('name') . ":\n" . substr($log_content, -4000)); // Telegram лимит 4096 символов

    $url = "https://api.telegram.org/bot{$bot_token}/sendMessage?chat_id={$chat_id}&text={$message}";
    wp_remote_get($url);

    // Очистка лога после отправки
    file_put_contents($log_file, '');
}

if (!wp_next_scheduled('wptest_telegram_error_report_hook')) {
    wp_schedule_event(time(), 'daily', 'wptest_telegram_error_report_hook');
}
add_action('wptest_telegram_error_report_hook', 'wptest_send_telegram_error_report');

Этот пример показывает, как можно интегрировать уведомления в Telegram без дополнительных плагинов.

Как безопасно работать с логами ошибок на продакшене

Важно правильно настроить права доступа к файлу логов, чтобы посторонние не могли его прочитать. Обычно файл debug.log находится в wp-content, и к нему нет прямого доступа из браузера, если сервер настроен по умолчанию.

Рекомендуется добавить в wp-content/.htaccess правило для запрета доступа к debug.log:

<Files debug.log>
    Order allow,deny
    Deny from all
</Files>

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

Резюме и рекомендации

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

  • Если хотите лёгкое и быстрое решение — используйте плагины типа Clearfy Pro с готовыми модулями уведомлений.
  • Для более гибкой настройки — реализуйте скрипты на PHP с использованием WP-Cron, как показано в примерах.

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

Оптимизация базы данных WordPress: практическое руководство
20.02.2026
Как использовать REST API в WordPress для создания кастомных эндпоинтов
29.11.2025
Как сделать безопасный вход в WordPress с помощью двухфакторной авторизации
26.11.2025
Как автоматизировать удаление старого контента в WordPress без плагинов
14.03.2026
Как избежать проблемы с повторной регистрацией пользователей в WooCommerce
28.04.2026