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

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

Почему важно автоматизировать сбор ошибок в WordPress

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

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

Как настроить логирование ошибок в WordPress

WordPress по умолчанию поддерживает логирование ошибок в файл debug.log, если включить режим отладки. Для этого в файле wp-config.php добавьте или измените следующие строки:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

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

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

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

Рассмотрим простой пример, как можно реализовать такую систему самостоятельно. Идея в том, чтобы периодически проверять файл debug.log на наличие новых записей и отправлять их администратору сайта.

Создадим функцию wpdevelop_send_error_report, которую подключим к планировщику WP-Cron.

function wpdevelop_send_error_report() {
    $log_file = WP_CONTENT_DIR . '/debug.log';
    $transient_key = 'wpdevelop_last_log_size';

    if (!file_exists($log_file)) return;

    $last_size = get_transient($transient_key);
    $current_size = filesize($log_file);

    if ($last_size === false) {
        set_transient($transient_key, $current_size, 12 * HOUR_IN_SECONDS);
        return; // первый запуск, просто запоминаем размер файла
    }

    if ($current_size > $last_size) {
        $handle = fopen($log_file, 'r');
        if (!$handle) return;

        fseek($handle, $last_size);
        $new_content = fread($handle, $current_size - $last_size);
        fclose($handle);

        $admin_email = get_option('admin_email');
        $subject = 'Новые ошибки в debug.log на сайте ' . get_bloginfo('name');
        $message = "Обнаружены новые ошибки в debug.log:\n\n" . $new_content;

        wp_mail($admin_email, $subject, $message);

        set_transient($transient_key, $current_size, 12 * HOUR_IN_SECONDS);
    }
}

add_action('wpdevelop_error_report_hook', 'wpdevelop_send_error_report');

// Запуск WP-Cron задачи каждые 30 минут
if (!wp_next_scheduled('wpdevelop_error_report_hook')) {
    wp_schedule_event(time(), 'halfhour', 'wpdevelop_error_report_hook');
}

// Регистрация интервала 30 минут
add_filter('cron_schedules', function($schedules) {
    $schedules['halfhour'] = [
        'interval' => 1800,
        'display' => 'Каждые 30 минут'
    ];
    return $schedules;
});

Этот код проверяет изменения файла debug.log каждые 30 минут и отправляет новые строки с ошибками на email администратора. Используется transient для хранения последнего прочитанного размера файла, чтобы не отправлять повторно одни и те же ошибки.

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

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

  • Clearfy Pro — позволяет не только оптимизировать сайт, но и имеет функции для мониторинга ошибок и уведомлений.
  • WPRemark — плагин для сбора отзывов и сообщений, который можно адаптировать под уведомления об ошибках.

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

Советы по безопасности и производительности

При работе с логами и отправкой отчетов важно соблюдать несколько правил:

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

Встроенный пример с WP-Cron и transient — базовая реализация, которую можно расширять под свои задачи, например, добавлять отправку отчетов в Slack, Telegram или интегрировать с сервисами мониторинга.

Заключение по созданию автоматического отчета об ошибках

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

Как отключить кеширование в WooCommerce без плагинов: практическое руководство
23.04.2026
Как удалить или изменить slug кастомного типа записи в WordPress без потери данных
03.03.2026
Как избежать конфликтов между WooCommerce и плагинами кеширования
21.05.2026
Как создать автоматический импорт данных из Excel в WordPress
19.03.2026
Отключение автосохранения и ревизий в WordPress для ускорения редактирования
21.05.2026