Поддержание стабильной работы сайта на WordPress требует регулярного мониторинга его состояния. Особенно важно быстро получать информацию о важных параметрах: загрузке сервера, состоянии базы данных, обновлениях, ошибках и уровне безопасности. В этой статье разберём, как организовать автоматическую отправку отчётов о состоянии сайта WordPress на email с помощью кода и популярных плагинов, а также как кастомизировать такие отчёты под конкретные задачи.
Почему важно автоматизировать отчёты о состоянии сайта WordPress
Ручной мониторинг сайта требует времени и не всегда оперативен. Если сбой случится ночью или во время отпуска, есть риск долго не заметить проблему. Автоматическая рассылка отчётов позволяет:
- Получать актуальные данные о производительности и безопасности;
- Реагировать на ошибки и сбои моментально;
- Контролировать обновления и статус плагинов, тем и ядра;
- Отслеживать состояние базы данных и использование ресурсов сервера;
- Прогнозировать возможные проблемы и предотвращать их.
Такая автоматизация особенно полезна для администраторов нескольких сайтов или агентств, которые ведут проекты клиентов.
Использование готовых плагинов для автоматических отчётов
Плагин WP Activity Log
Этот плагин ведёт подробный журнал активности, включая входы в систему, изменения контента, установку и обновление плагинов. В настройках можно задать регулярную отправку email с отчётами. Это удобно для контроля безопасности и аудита.
Установка и настройка:
- В админке перейдите в Плагины > Добавить новый, найдите WP Activity Log и установите;
- Активируйте плагин и перейдите в Activity Log > Notifications для настройки отправки email;
- Выберите частоту отправки, формат отчёта и адреса получателей.
Подробнее на wpshop.ru.
Плагин WP Crontrol для кастомных задач
WP Crontrol позволяет управлять WP-Cron задачами, создавать свои, в том числе отправку email с отчётами. Этот плагин подходит, если нужно строить сложные и кастомные отчёты.
Как создать собственную функцию для автоматической отправки отчёта по email
Если готовые решения не подходят, можно написать собственный код. Ниже пример функции, которая собирает информацию о состоянии сайта и отправляет отчёт на email с помощью WP-Cron.
function wptasks_send_site_status_report() {
$admin_email = get_option('admin_email');
$subject = 'Отчёт о состоянии сайта '. get_bloginfo('name');
// Собираем информацию
$php_version = phpversion();
$wp_version = get_bloginfo('version');
$sql_status = wptasks_check_database_status();
$disk_usage = wptasks_get_disk_usage();
$message = "Отчёт о состоянии сайта:\n";
$message .= "PHP версия: $php_version\n";
$message .= "Версия WordPress: $wp_version\n";
$message .= "Статус базы данных: $sql_status\n";
$message .= "Использование диска: $disk_usage\n";
wp_mail($admin_email, $subject, $message);
}
// Проверка статуса базы данных
function wptasks_check_database_status() {
global $wpdb;
$result = $wpdb->get_results('SHOW TABLE STATUS');
if ($result) {
$repair_needed = false;
foreach ($result as $table) {
if ($table->Data_free > 0) {
$repair_needed = true;
break;
}
}
return $repair_needed ? 'Требуется оптимизация' : 'OK';
}
return 'Ошибка проверки';
}
// Получение использования диска
function wptasks_get_disk_usage() {
$total = disk_total_space(ABSPATH);
$free = disk_free_space(ABSPATH);
$used = $total - $free;
$percent = round(($used / $total) * 100, 2);
return "$percent% использовано";
}
// Регистрация крон-задачи
add_action('wptasks_daily_site_report', 'wptasks_send_site_status_report');
if (!wp_next_scheduled('wptasks_daily_site_report')) {
wp_schedule_event(time(), 'daily', 'wptasks_daily_site_report');
}
Этот код:
- Собирает базовую информацию о PHP, WP, базе данных и дисковом пространстве;
- Отправляет отчёт на email администратора;
- Регистрирует ежедневное событие WP-Cron для автоматической рассылки.
Вы можете расширить этот функционал, добавив проверку обновлений, загрузку CPU сервера, логи ошибок и другие метрики.
Как улучшить отчёт и интегрировать с WPTasks
Если используете плагин WPTasks, можно добавить в отчёт информацию о текущих задачах и проектах, статусах и дедлайнах. Для этого нужно использовать API WPTasks и включать данные в тело письма.
Пример расширения функции для добавления задач WPTasks
function wptasks_get_tasks_summary() {
// Предполагается, что WPTasks предоставляет функцию для получения задач
if (function_exists('wptasks_get_all_tasks')) {
$tasks = wptasks_get_all_tasks();
$count = count($tasks);
$pending = 0;
foreach ($tasks as $task) {
if ($task->status === 'pending') {
$pending++;
}
}
return "Всего задач: $count, Ожидают выполнения: $pending";
}
return 'Информация о задачах недоступна';
}
// Добавляем в основной отчёт
function wptasks_send_site_status_report() {
$admin_email = get_option('admin_email');
$subject = 'Отчёт о состоянии сайта '. get_bloginfo('name');
$php_version = phpversion();
$wp_version = get_bloginfo('version');
$sql_status = wptasks_check_database_status();
$disk_usage = wptasks_get_disk_usage();
$tasks_summary = wptasks_get_tasks_summary();
$message = "Отчёт о состоянии сайта:\n";
$message .= "PHP версия: $php_version\n";
$message .= "Версия WordPress: $wp_version\n";
$message .= "Статус базы данных: $sql_status\n";
$message .= "Использование диска: $disk_usage\n";
$message .= "Статус задач: $tasks_summary\n";
wp_mail($admin_email, $subject, $message);
}
Рекомендации по безопасности и производительности
Отправка отчётов по email требует учёта безопасности:
- Не включайте в письма конфиденциальные данные;
- Используйте надежные SMTP-сервисы, чтобы письма не попадали в спам;
- Ограничьте частоту отправки, чтобы не перегружать сервер и почтовый ящик;
- Проверяйте корректность работы WP-Cron, особенно на слабых хостингах;
- Используйте кеширование и оптимизируйте запросы, чтобы отчёты не замедляли сайт.
Выводы
Автоматическая отправка отчётов о состоянии сайта WordPress — эффективный способ держать под контролем ключевые параметры и быстро реагировать на проблемы. Можно использовать готовые плагины, такие как WP Activity Log и WP Crontrol, либо написать собственное решение с помощью WP-Cron и wp_mail. Интеграция с WPTasks позволит добавить в отчёты статус задач, что особенно полезно для комплексного управления проектами.
Для скачивания и ознакомления с плагинами посетите wpshop.ru.