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

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

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

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

Поэтому регулярный аудит и очистка пользователей — важная задача для любого администратора WordPress.

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

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

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

Если вы используете плагин, например, Clearfy Pro, он может добавлять метаполя, например, blocked или user_status. Вы можете получить пользователей с этим метаполем через WP_User_Query:

$args = [
    'meta_key' => 'blocked',
    'meta_value' => '1',
    'fields' => 'ID'
];
$blocked_users = new WP_User_Query($args);
foreach ($blocked_users->get_results() as $user_id) {
    // обработать
}

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

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

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

add_action('wp_login', 'wplock_update_last_login', 10, 2);
function wplock_update_last_login($user_login, $user) {
    update_user_meta($user->ID, 'last_login', current_time('mysql'));
}

Далее можно получить список пользователей, не заходивших на сайт более 3 или 6 месяцев:

$date_threshold = date('Y-m-d H:i:s', strtotime('-6 months'));
$args = [
    'meta_key' => 'last_login',
    'meta_value' => $date_threshold,
    'meta_compare' => '<',
    'fields' => 'ID'
];
$inactive_users = new WP_User_Query($args);
foreach ($inactive_users->get_results() as $user_id) {
    // обработать
}

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

Удаление пользователей вручную через админку неудобно при большом количестве. Лучше автоматизировать процесс.

Удаление через WP-CLI

Если у вас есть доступ к серверу, WP-CLI — отличный инструмент. Например, чтобы удалить пользователей с определённым метаполем:

wp user list --meta_key=blocked --meta_value=1 --field=ID | xargs wp user delete --yes

Или удалить пользователей, не входивших более 6 месяцев (предварительно нужно добавить last_login):

wp user list --meta_key=last_login --meta_compare='<' --meta_value='2023-12-01' --field=ID | xargs wp user delete --yes

Автоматическое удаление через PHP-код

Можно написать функцию, которая удалит таких пользователей по расписанию с помощью Cron:

function wplock_delete_inactive_blocked_users() {
    $date_threshold = date('Y-m-d H:i:s', strtotime('-6 months'));
    $args = [
        'meta_query' => [
            'relation' => 'OR',
            [
                'key' => 'blocked',
                'value' => '1',
                'compare' => '='
            ],
            [
                'key' => 'last_login',
                'value' => $date_threshold,
                'compare' => '<'
            ]
        ],
        'fields' => 'ID'
    ];
    $query = new WP_User_Query($args);
    foreach ($query->get_results() as $user_id) {
        wp_delete_user($user_id);
    }
}
add_action('wplock_daily_cleanup', 'wplock_delete_inactive_blocked_users');
// Запланировать событие в functions.php, если еще не запланировано
if (!wp_next_scheduled('wplock_daily_cleanup')) {
    wp_schedule_event(time(), 'daily', 'wplock_daily_cleanup');
}

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

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

Если не хотите писать код, обратите внимание на плагины:

  • Inactive User Deleter — автоматически удаляет пользователей, неактивных заданный период.
  • Clearfy Pro — расширяет возможности управления безопасностью, в том числе блокировку и очистку.
  • WP Bulk Delete — мощный инструмент для массового удаления пользователей по разным критериям.

Все эти плагины можно найти и скачать на WPSHOP.

Как избежать случайного удаления нужных пользователей

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

  • Создание резервных копий базы данных перед удалением.
  • Логирование действий удаления для последующего анализа.
  • Исключение администраторов и важных ролей из удаления.

Например, модифицируем функцию удаления пользователей, чтобы не трогать админов:

function wplock_delete_inactive_blocked_users_safe() {
    $date_threshold = date('Y-m-d H:i:s', strtotime('-6 months'));
    $args = [
        'meta_query' => [
            'relation' => 'OR',
            [
                'key' => 'blocked',
                'value' => '1',
                'compare' => '='
            ],
            [
                'key' => 'last_login',
                'value' => $date_threshold,
                'compare' => '<'
            ]
        ],
        'fields' => 'ID'
    ];
    $query = new WP_User_Query($args);
    foreach ($query->get_results() as $user_id) {
        $user = get_userdata($user_id);
        if (in_array('administrator', $user->roles)) {
            continue; // пропускаем админов
        }
        wp_delete_user($user_id);
    }
}

Выводы и рекомендации по работе с заблокированными и неактивными пользователями

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

Если вы хотите расширить функциональность управления пользователями, обратите внимание на плагины, например, Clearfy Pro или WP Bulk Delete.

Как удалить пустующее изображение в WordPress
02.12.2025
Как добавить свои метаданные в WordPress
16.11.2025
Как удалить неактивные комментарии в WordPress: эффективные способы очистки базы
03.02.2026
Как использовать REST API в WordPress для создания своего плагина
08.12.2025
Как удалить заблокированные и неактивные пользователи в WordPress
22.12.2025