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

Что такое удалённые пользователи в WordPress и почему их нужно полностью удалять

В WordPress при удалении пользователя можно выбрать опцию «Удалить» или «Прикрепить содержимое к другому пользователю». Однако при этом данные пользователя, связанные с учетной записью, могут сохраняться в базе данных. Особенно если пользователь был удалён через панель администратора, но с опцией, которая не удаляет все связанные записи, метаданные и настройки. Такие «удалённые» пользователи фактически остаются в базе как анонимные или с ограниченными правами, но их данные могут занимать место и потенциально создавать риски безопасности.

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

  • Очистки базы данных от ненужных записей и метаданных
  • Уменьшения размера базы и ускорения работы сайта
  • Повышения безопасности за счёт удаления устаревших учетных записей
  • Избежания конфликтов при миграциях и обновлениях

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

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

В WordPress удалённые пользователи могут оставаться в таблице wp_users с определёнными признаками. Обычно у них нет логина или email, или в метаданных есть флаг удаления. Для начала нужно проверить, есть ли такие записи в базе.

Для проверки удалённых пользователей можно использовать SQL-запрос напрямую в phpMyAdmin или через плагин «WP Data Access»:

SELECT * FROM wp_users WHERE user_login = '' OR user_email = '';

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

Также существуют плагины для управления пользователями, которые могут показать скрытых или удалённых пользователей. Например:

  • WP Bulk Delete — позволяет массово удалять пользователей по разным параметрам, включая неактивных или без активности
  • User Cleaner — плагин для очистки базы от неиспользуемых пользователей и данных

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

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

Для полного удаления удалённых пользователей с базы данных можно использовать следующий пример функции. Она ищет пользователей без логина и email, удаляет их из таблицы wp_users и связанные метаданные из wp_usermeta.

function wpid_delete_removed_users() {
  global $wpdb;
  // Получаем ID пользователей без логина или email
  $user_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->users} WHERE user_login = '' OR user_email = ''");

  if (empty($user_ids)) {
    return 'Удалённых пользователей не найдено';
  }

  foreach ($user_ids as $user_id) {
    // Удаляем метаданные
    $wpdb->delete($wpdb->usermeta, ['user_id' => $user_id]);
    // Удаляем пользователя
    $wpdb->delete($wpdb->users, ['ID' => $user_id]);
  }

  return count($user_ids) . ' удалённых пользователей успешно удалены';
}

Эту функцию можно вызвать из консоли WP-CLI, добавить в отдельный файл плагина или через хук в админке. Она полностью очищает базу от «зомби»-пользователей.

Запуск функции через WP-CLI

Чтобы быстро очистить базу, можно зарегистрировать команду WP-CLI:

if ( defined('WP_CLI') && WP_CLI ) {
  WP_CLI::add_command('wpid-clean-users', function() {
    $result = wpid_delete_removed_users();
    WP_CLI::success($result);
  });
}

После этого в консоли достаточно выполнить wp wpid-clean-users для очистки.

Как избежать появления удалённых пользователей в будущем

Чтобы не допускать накопления удалённых пользователей, рекомендуется:

  • При удалении пользователя выбирать опцию переназначения контента другому пользователю
  • Использовать плагины для управления пользователями с возможностью полного удаления записи, например, Advanced Database Cleaner
  • Регулярно проверять базу на предмет «пустых» пользователей с помощью SQL-запросов или плагинов
  • Хранить резервные копии базы перед массовыми удалениями

Также можно автоматизировать процесс, создав cron-задачу с вызовом функции wpid_delete_removed_users раз в месяц для очистки базы.

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

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

Комбинация SQL-проверок, использования специализированных плагинов и кастомных функций позволяет безопасно и эффективно очищать базу от таких записей. Для разработчиков и администраторов важно понимать, как эти пользователи выглядят в базе и как их правильно удалять без потери данных.

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

Как создать автоматический бэкап базы данных в WordPress
02.02.2026
Как автоматически обновлять миниатюры в WordPress при смене размера изображений
14.03.2026
Как избежать конфликтов между WooCommerce и плагинами: как отслеживать и решать
06.05.2026
Как отключить автоматическое подключение плагинов в WordPress
31.03.2026
Как использовать WPCommunity для создания форума в WordPress
21.03.2026