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

В администрировании WordPress часто возникает задача очистить базу пользователей от заблокированных аккаунтов. Такие пользователи могут быть созданы ботами или оставлены после блокировки за нарушение правил. Удаление заблокированных пользователей вручную неудобно и долго, особенно если их много. В этой статье рассмотрим, как автоматизировать этот процесс с помощью PHP-кода, который можно добавить в functions.php вашей темы или в отдельный плагин.

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

WordPress по умолчанию не имеет встроенного статуса «заблокированный пользователь». Поэтому под «заблокированными» обычно понимают пользователей с определённым пользовательским мета-полем, ролью, статусом или флагом, который администратор выставил для блокировки. Например, часто для блокировки вручную меняют роль пользователя на blocked, или добавляют мета-поле is_blocked со значением true.

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

  • Роль пользователя — blocked
  • Пользовательское мета-поле: blocked = 1 или true
  • Пользователь внесён в специальный список или таблицу

В этой статье рассмотрим вариант с мета-полем blocked, так как он универсален и легко внедряется.

Пошаговое решение: удаление заблокированных пользователей по мета-полю

Чтобы удалить всех пользователей с мета-полем blocked равным 1, можно использовать WP_User_Query для выборки и функцию wp_delete_user() для удаления.

Шаг 1. Выборка заблокированных пользователей

Используем WP_User_Query с параметром meta_query:

function wpmanual_get_blocked_users() {
    $args = array(
        'meta_key'   => 'blocked',
        'meta_value' => '1',
        'fields'     => 'ID',
        'number'     => 100, // количество на один проход
    );
    $user_query = new WP_User_Query($args);
    return $user_query->get_results();
}

Функция вернёт массив ID пользователей с мета-полем blocked=1.

Шаг 2. Удаление пользователей по ID

Для удаления используем wp_delete_user(). Важно помнить, что удаление без переназначения контента удалит все записи пользователя. Если хотите сохранить записи, можно указать ID другого пользователя для переназначения.

function wpmanual_delete_blocked_users() {
    $blocked_users = wpmanual_get_blocked_users();
    foreach ($blocked_users as $user_id) {
        // Передаем null, чтобы удалить все записи пользователя
        wp_delete_user($user_id, null);
    }
}

Шаг 3. Автоматизация удаления через WP-Cron

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

function wpmanual_schedule_blocked_users_cleanup() {
    if (!wp_next_scheduled('wpmanual_blocked_users_cleanup_hook')) {
        wp_schedule_event(time(), 'weekly', 'wpmanual_blocked_users_cleanup_hook');
    }
}
add_action('wp', 'wpmanual_schedule_blocked_users_cleanup');

add_action('wpmanual_blocked_users_cleanup_hook', 'wpmanual_delete_blocked_users');

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

Дополнительные советы: как безопасно работать с удалением пользователей

Удаление пользователей — операция необратимая, поэтому необходимо соблюдать меры предосторожности:

  • Перед удалением сделайте резервную копию базы данных.
  • Тестируйте код на тестовом сайте.
  • Добавьте логирование удалённых пользователей для контроля.
  • При необходимости переназначайте контент другому пользователю, чтобы не потерять записи.

Пример логирования удалённых пользователей:

function wpmanual_delete_blocked_users_with_log() {
    $blocked_users = wpmanual_get_blocked_users();
    foreach ($blocked_users as $user_id) {
        error_log("WPManual: deleting blocked user ID: " . $user_id);
        wp_delete_user($user_id, null);
    }
}

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

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

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

Заключение

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

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

Как использовать хуки в WordPress для расширения функциональности
10.11.2025
Как удалить заблокированных пользователей WordPress с помощью кода
30.03.2026
Удалить все записи в WordPress: эффективные методы удаления контента
21.11.2025
Как изменить robots.txt в WordPress без плагинов
08.03.2026
WooCommerce: решение проблемы с нерабочими кодами купонов
18.06.2026