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

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

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

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

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

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

Существует несколько плагинов, которые помогают собирать и формировать отчеты по проблемам WordPress:

  • WP Debugging — расширяет стандартный режим отладки, автоматически записывает ошибки в лог-файл и может отправлять уведомления.
  • Query Monitor — мощный инструмент для разработчиков, который показывает ошибки, запросы к базе данных, HTTP-запросы, хук-активность и многое другое.
  • Error Log Monitor — плагин, который отслеживает файлы логов ошибок PHP и уведомляет администратора в админке.

Для более комплексного решения можно использовать сервисы мониторинга, интегрированные с WordPress, например, Sentry или Bugsnag. Но в статье мы сосредоточимся на локальных и встроенных методах.

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

Для начала активируем стандартный режим отладки WordPress, если он не включен. В файле wp-config.php задайте следующие параметры:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

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

Чтобы автоматически отправлять отчет на почту или сохранять в базе, добавим в файл functions.php вашей темы следующий код с префиксом wpnote_ для функций:

function wpnote_send_debug_log_report() {
    $log_file = WP_CONTENT_DIR . '/debug.log';
    if (!file_exists($log_file)) {
        return;
    }
    $last_sent = get_option('wpnote_last_debug_report_sent', 0);
    $file_mod_time = filemtime($log_file);
    if ($file_mod_time <= $last_sent) {
        return; // Отчет уже отправлен после последнего изменения
    }
    $log_content = file_get_contents($log_file);
    if (empty($log_content)) {
        return;
    }
    $to = get_option('admin_email');
    $subject = 'Отчет об ошибках WordPress на сайте ' . get_bloginfo('name');
    $headers = array('Content-Type: text/plain; charset=UTF-8');
    wp_mail($to, $subject, $log_content, $headers);
    update_option('wpnote_last_debug_report_sent', time());
}

// Запускаем отправку отчета один раз в сутки
function wpnote_schedule_debug_report() {
    if (!wp_next_scheduled('wpnote_daily_debug_report_event')) {
        wp_schedule_event(time(), 'daily', 'wpnote_daily_debug_report_event');
    }
}
add_action('wp', 'wpnote_schedule_debug_report');
add_action('wpnote_daily_debug_report_event', 'wpnote_send_debug_log_report');

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

Расширение функционала — фильтрация и форматирование отчета

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

function wpnote_filter_critical_errors($log_content) {
    $lines = explode("\n", $log_content);
    $filtered = array_filter($lines, function($line) {
        return stripos($line, 'error') !== false || stripos($line, 'fatal') !== false;
    });
    return implode("\n", $filtered);
}

function wpnote_send_debug_log_report_filtered() {
    $log_file = WP_CONTENT_DIR . '/debug.log';
    if (!file_exists($log_file)) {
        return;
    }
    $last_sent = get_option('wpnote_last_debug_report_sent', 0);
    $file_mod_time = filemtime($log_file);
    if ($file_mod_time <= $last_sent) {
        return;
    }
    $log_content = file_get_contents($log_file);
    $filtered_content = wpnote_filter_critical_errors($log_content);
    if (empty($filtered_content)) {
        return;
    }
    $to = get_option('admin_email');
    $subject = 'Критичные ошибки WordPress на сайте ' . get_bloginfo('name');
    $headers = array('Content-Type: text/plain; charset=UTF-8');
    wp_mail($to, $subject, $filtered_content, $headers);
    update_option('wpnote_last_debug_report_sent', time());
}

Замените вызов функции wpnote_send_debug_log_report на wpnote_send_debug_log_report_filtered, если хотите получать только важные ошибки.

Интеграция с плагином Clearfy Pro для расширенного контроля

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

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

Рекомендации по работе с отчетами и автоматизацией

При внедрении автоматических отчетов важно:

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

Для ротации логов можно добавить этот код в wp-config.php:

if (file_exists(WP_CONTENT_DIR . '/debug.log') && filesize(WP_CONTENT_DIR . '/debug.log') > 1048576) {
    rename(WP_CONTENT_DIR . '/debug.log', WP_CONTENT_DIR . '/debug-' . time() . '.log');
}

Так вы создадите новый лог, если текущий превысит 1 Мб.

Выводы и советы

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

Как создать автоматическую подписку на рассылку в WordPress с помощью WPRemark
31.01.2026
WooCommerce: как исправить проблемы с изменением цены при выборе вариаций товара
22.05.2026
Как сделать автоматическое удаление старых черновиков в WordPress
12.03.2026
WooCommerce: невозможно изменить складские запасы через админку — как исправить
21.04.2026
Как настроить автообновления плагинов WordPress без рисков
16.01.2026