Как удалить неактивных пользователей из базы данных WordPress

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

Почему важно удалять неактивных пользователей WordPress

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

  • Увеличению размера таблицы wp_users и связанной мета-информации (wp_usermeta), что замедляет запросы.
  • Росту нагрузки на сервер при выполнении операций с пользователями.
  • Потенциальным рискам безопасности — неактивные аккаунты могут быть заброшенными и уязвимыми.

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

Как определить неактивных пользователей

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

Использование плагина WP Activity Log

Плагин WP Activity Log сохраняет информацию о входах пользователей. После установки и настройки можно экспортировать список пользователей, которые не заходили в админку более X месяцев.

Добавление записи последнего входа пользователя вручную

Если вы хотите самостоятельно отслеживать дату последнего входа, добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wordpressa_update_last_login($login, $user) {
    update_user_meta($user->ID, 'wordpressa_last_login', current_time('mysql'));
}
add_action('wp_login', 'wordpressa_update_last_login', 10, 2);

Этот код создаст мета-поле wordpressa_last_login с датой последнего входа пользователя.

Удаление неактивных пользователей с помощью SQL-запроса

Если вы уже отслеживаете дату последнего входа, можно удалить пользователей, не заходивших, например, более 6 месяцев, с помощью SQL-запроса. Важно сделать резервную копию базы перед выполнением.

DELETE u, um FROM wp_users u
LEFT JOIN wp_usermeta um ON u.ID = um.user_id
WHERE u.ID IN (
    SELECT ID FROM (
        SELECT ID FROM wp_users u
        LEFT JOIN wp_usermeta um ON u.ID = um.user_id AND um.meta_key = 'wordpressa_last_login'
        WHERE um.meta_value < DATE_SUB(NOW(), INTERVAL 6 MONTH) OR um.meta_value IS NULL
    ) AS temp
);

Этот запрос удалит пользователей, у которых дата последнего входа отсутствует или старше 6 месяцев, вместе с их метаданными.

Автоматизация удаления с помощью PHP-кода и WP-Cron

Для регулярного удаления неактивных пользователей можно настроить WP-Cron задачу, которая будет запускать очистку по расписанию. Пример кода для такого решения:

function wordpressa_delete_inactive_users() {
    $args = array(
        'meta_key'     => 'wordpressa_last_login',
        'meta_value'   => date('Y-m-d H:i:s', strtotime('-6 months')),
        'meta_compare' => '<',
        'fields'       => 'ID',
        'number'       => -1,
    );

    $user_query = new WP_User_Query($args);
    $user_ids = $user_query->get_results();

    foreach ($user_ids as $user_id) {
        require_once(ABSPATH.'wp-admin/includes/user.php');
        wp_delete_user($user_id);
    }
}

if (!wp_next_scheduled('wordpressa_cron_delete_inactive_users')) {
    wp_schedule_event(time(), 'daily', 'wordpressa_cron_delete_inactive_users');
}
add_action('wordpressa_cron_delete_inactive_users', 'wordpressa_delete_inactive_users');

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

Использование плагина Clearfy Pro для управления пользователями

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

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

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

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

Выводы

Удаление неактивных пользователей — важная задача для поддержания производительности и безопасности сайта на WordPress. Комбинируя отслеживание последнего входа, SQL-запросы и автоматизацию через WP-Cron, вы можете эффективно управлять пользователями. При необходимости используйте готовые плагины, такие как Clearfy Pro, для упрощения процесса.

Как добавить кастомные области виджетов в тему WordPress
26.01.2026
Оптимальные методы кэширования для ускорения сайта
14.04.2026
Как настроить разделённый кеш в WordPress для ускорения сайта
08.03.2026
Как создать свою таксономию в WordPress с примерами кода
02.02.2026
Как отменить заказ в WooCommerce после оплаты: практическое руководство
07.05.2026