Для владельцев и администраторов сайтов на WordPress важно регулярно контролировать состояние ресурса: доступность, обновления, использование ресурсов, статистику посещений и ошибки. Чтобы не тратить время на ручной мониторинг, можно автоматизировать процесс создания и отправки отчётов о состоянии сайта по электронной почте.
Зачем нужна автоматизация отчётов в WordPress
Регулярные отчёты позволяют своевременно выявлять проблемы с производительностью, безопасностью и содержимым сайта, а также информировать заинтересованных лиц (владельцев, команду поддержки) о текущем состоянии. Автоматизация экономит время и помогает избежать пропуска важных событий.
Типичные данные для включения в отчёт:
- Версия WordPress и установленных плагинов
- Статистика публикаций и комментариев
- Ошибки PHP и логи сервера
- Наличие обновлений
- Использование ресурсов (память, CPU)
- Статистика посещаемости (через API Google Analytics или плагины)
Выбор плагинов для мониторинга и отчётов
Плагины для сбора данных
Для сбора информации можно использовать плагины с расширенными возможностями:
- WP Activity Log — отслеживает активность пользователей, изменения контента и системные события.
- Query Monitor — помогает выявлять медленные запросы и ошибки.
- WP Crontrol — для управления и просмотра запланированных задач WordPress.
Плагины для отправки почтовых уведомлений
Чтобы гарантировать доставку писем, лучше использовать SMTP-плагины:
- WP Mail SMTP — настройка отправки почты через SMTP-серверы.
- Easy WP SMTP — простая настройка SMTP с поддержкой различных сервисов.
Однако для создания кастомных отчётов и их автоматической отправки лучше написать собственный код с использованием wp_cron.
Пример реализации автоматического отчёта на WordPress с использованием wp_cron
Ниже показан пример кода, который собирает базовую информацию о сайте и отправляет её на указанный email раз в неделю.
<?php
// Функция для сбора данных отчёта
function wpcode_generate_site_report() {
$report = '';
// Версия WordPress
$report .= "Версия WordPress: " . get_bloginfo('version') . "\n";
// Количество опубликованных постов
$post_count = wp_count_posts()->publish;
$report .= "Опубликовано постов: " . $post_count . "\n";
// Количество комментариев
$comment_count = wp_count_comments()->approved;
$report .= "Одобрено комментариев: " . $comment_count . "\n";
// Проверка обновлений
include_once( ABSPATH . 'wp-admin/includes/update.php' );
$updates = get_core_updates();
if ( ! empty( $updates ) ) {
$report .= "Доступны обновления WordPress.\n";
} else {
$report .= "Обновления WordPress не найдены.\n";
}
// Использование памяти
$memory_usage = size_format( memory_get_peak_usage( true ) );
$report .= "Пиковое использование памяти: " . $memory_usage . "\n";
return $report;
}
// Функция для отправки отчёта
function wpcode_send_site_report() {
$to = get_option('admin_email'); // Отправляем администратору
$subject = 'Отчёт о состоянии сайта ' . get_bloginfo('name');
$message = wpcode_generate_site_report();
wp_mail( $to, $subject, $message );
}
// Регистрация задачи в wp_cron
add_action( 'wpcode_weekly_site_report', 'wpcode_send_site_report' );
// Планирование cron-задачи при активации темы или плагина
function wpcode_schedule_report_event() {
if ( ! wp_next_scheduled( 'wpcode_weekly_site_report' ) ) {
wp_schedule_event( time(), 'weekly', 'wpcode_weekly_site_report' );
}
}
add_action( 'wp', 'wpcode_schedule_report_event' );
// Очистка cron-задачи при деактивации
function wpcode_clear_report_event() {
$timestamp = wp_next_scheduled( 'wpcode_weekly_site_report' );
if ( $timestamp ) {
wp_unschedule_event( $timestamp, 'wpcode_weekly_site_report' );
}
}
// Для плагина использовать register_deactivation_hook
// Для темы можно добавить хук deactivation
?>Этот код создаёт еженедельную задачу, которая будет отправлять на email администратора базовый отчёт о состоянии сайта. Его можно расширить, интегрируя данные из плагинов или API.
Советы по расширению функционала отчётов
Интеграция с Google Analytics
Для добавления данных по трафику можно использовать Google Analytics API с OAuth 2.0. Это позволит получать посещаемость, источники трафика и поведение пользователей.
Например, можно использовать библиотеку Google API PHP Client для запросов к Analytics Reporting API.
Добавление логов ошибок и безопасности
Чтобы включить ошибки PHP в отчёт, можно прочитать файл debug.log (если включён WP_DEBUG_LOG) и фильтровать последние записи. Также полезно включить в отчёт информацию о попытках взлома и активности безопасности через плагины, например, Wordfence.
Использование плагина WPRemark для формирования отчетов
Плагин WPRemark позволяет создавать отчёты и отправлять их автоматически, интегрируя статистику и кастомные данные, что может значительно упростить задачу.
Заключение
Автоматизация создания и отправки отчётов о состоянии сайта WordPress помогает своевременно получать важную информацию и экономит время. Используя wp_cron и кастомный код, можно организовать гибкий и расширяемый механизм мониторинга. Для упрощения можно привлечь специализированные плагины, способные собирать и визуализировать данные.