Создание автоматических журналов активности пользователей в WordPress

Ведение журнала активности пользователей — важный элемент администрирования сайта на WordPress, особенно если у вас много пользователей или вы хотите контролировать внесённые изменения. В этой статье рассмотрим, как создать автоматические журналы активности пользователей (activity logs) в WordPress с помощью кода и популярных плагинов, а также расскажем, как хранить и выводить эти данные.

Зачем нужны журналы активности пользователей в WordPress

Журналы активности позволяют фиксировать действия пользователей — входы на сайт, изменения постов, редактирование страниц, смену пароля, создание новых пользователей и многое другое. Это помогает:

  • Отслеживать безопасность сайта и выявлять подозрительные действия.
  • Анализировать поведение пользователей и администраторов.
  • Восстанавливать важные изменения и выявлять ошибки.
  • Обеспечивать контроль при командной работе и делегировании прав.

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

Популярные плагины для ведения журналов активности пользователей в WordPress

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

WP Activity Log

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

Преимущества:

  • Подробные логи с возможностью фильтрации.
  • Уведомления по Email при важных событиях.
  • Интеграция с WooCommerce, BuddyPress и другими плагинами.

Скачать плагин: WP Activity Log на WPShop

Simple History

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

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

Скачать: Simple History на WordPress.org

Как самостоятельно вести журнал активности с помощью кода

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

Создание таблицы для логов

Для начала создадим таблицу в базе данных, где будет храниться лог активности.

function journalx_create_activity_log_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'journalx_activity_log';
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
      id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
      user_id BIGINT(20) UNSIGNED NOT NULL,
      action VARCHAR(100) NOT NULL,
      action_time DATETIME NOT NULL,
      ip_address VARCHAR(100) NOT NULL,
      PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
}
register_activation_hook(__FILE__, 'journalx_create_activity_log_table');

Этот код создаст таблицу wp_journalx_activity_log с полями для хранения ID пользователя, действия, времени и IP.

Функция записи лога при входе пользователя

function journalx_log_user_login($user_login, $user) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'journalx_activity_log';

    $wpdb->insert(
        $table_name,
        [
            'user_id' => $user->ID,
            'action' => 'login',
            'action_time' => current_time('mysql'),
            'ip_address' => $_SERVER['REMOTE_ADDR'] ?? 'unknown',
        ]
    );
}
add_action('wp_login', 'journalx_log_user_login', 10, 2);

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

Вывод журнала в админке WordPress

Для удобства создадим страницу в админке, где можно просмотреть логи.

function journalx_add_admin_menu() {
    add_menu_page('Журнал активности', 'Журнал активности', 'manage_options', 'journalx-activity-log', 'journalx_render_activity_log');
}
add_action('admin_menu', 'journalx_add_admin_menu');

function journalx_render_activity_log() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'journalx_activity_log';
    $logs = $wpdb->get_results("SELECT * FROM $table_name ORDER BY action_time DESC LIMIT 50");

    echo '<h1>Журнал активности пользователей</h1>';
    echo '<table class="widefat fixed">';
    echo '<thead><tr><th>ID</th><th>Пользователь</th><th>Действие</th><th>Время</th><th>IP адрес</th></tr></thead>';
    echo '<tbody>';
    foreach ($logs as $log) {
        $user_info = get_userdata($log->user_id);
        $user_name = $user_info ? $user_info->user_login : 'Неизвестный';
        echo "<tr><td>{$log->id}</td><td>{$user_name}</td><td>{$log->action}</td><td>{$log->action_time}</td><td>{$log->ip_address}</td></tr>";
    }
    echo '</tbody></table>';
}

Теперь в меню WordPress появится раздел "Журнал активности", где вы сможете просматривать последние 50 записей.

Расширение журнала для других действий

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

  • Изменение публикаций: используйте хуки save_post для записи изменений.
  • Создание/удаление пользователей: хуки user_register и delete_user.
  • Изменение настроек: отслеживайте обновления опций через updated_option.

Пример записи изменения записи:

function journalx_log_post_update($post_id, $post, $update) {
    if (!$update) return; // только обновления

    global $wpdb;
    $table_name = $wpdb->prefix . 'journalx_activity_log';
    $user_id = get_current_user_id();

    $wpdb->insert(
        $table_name,
        [
            'user_id' => $user_id,
            'action' => 'update_post_' . $post_id,
            'action_time' => current_time('mysql'),
            'ip_address' => $_SERVER['REMOTE_ADDR'] ?? 'unknown',
        ]
    );
}
add_action('post_updated', 'journalx_log_post_update', 10, 3);

Интеграция с плагинами WPGPT и Expert Review для автоматизации анализа логов

Если вы используете на сайте плагины из WPShop, например, WPGPT или Expert Review, то можно автоматизировать анализ журналов активности с помощью AI. К примеру, WPGPT способен обрабатывать логи и выдавать рекомендации по безопасности и оптимизации, а Expert Review поможет оценить поведение пользователей на сайте.

Выводы и рекомендации по ведению журналов активности

Ведение журналов активности — обязательный элемент при серьезном подходе к администрированию WordPress. Выбор между готовыми плагинами и собственными решениями зависит от задач и масштабов проекта. Для большинства сайтов достаточно WP Activity Log или Simple History, для уникальных требований — можно реализовать кастомные логи с помощью кода.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как отключить ненужные скрипты и стили в WordPress для улучшения производительности
10.05.2026
Как создать автоматический журнал изменений в WordPress с подробными примерами
11.03.2026
Как создать автоматический журнал изменений в WordPress с примерами кода и плагинов
07.03.2026
Как создать автоматический журнал активности пользователей в WordPress
21.02.2026
Как создать динамические виджеты в WordPress с использованием AJAX
12.12.2025
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙