Если, как и я, вы предпочитаете подход Python (возможно, редко здесь, но все же), это прозрачный и эффективный способ решения этой проблемы:
import os
# Build up a variable containing the usernames
# This list was built using drush sql-cli, then
# SELECT name FROM users
# where $your-where-condition
# order by uid asc
# INTO
# OUTFILE '/tmp/users.csv'
# FIELDS TERMINATED BY ','
# ENCLOSED BY '"'
# lines terminated by ', ' ;
users = [result from SQL goes here]
for user in users:
print("Deleting spam user: %s..." % user),
os.system('drush --yes -r $your-path-to-drupal -l $your-site-url user-cancel --delete-content %s > /dev/null' % user)
print 'Done'
Шаги в основном:
- Войдите в свою БД с
drush sql-cli -r $your-path-to-drupal -l $your-site-url
- Запустите приведенный выше SQL с вашим собственным условием where и вставьте результаты в переменную users.
- Обновите ваш путь и имя сайта в команде drush
- Запустите скрипт с
python delete-users.py
Я уверен, что есть лучший способ сделать это, но это мое взломанное решение, которое работает хорошо.
select all
кнопку, которая выбирает все элементы на всех страницах - нажмите ее и убейте их!