wordpress如何删除长期不活跃用户,删除最近1年未登录用户删除空闲用户, 下面我们就来准备删除一些很久未登录的僵尸用户。
由于wordpress网站之前按照网上教程照搬了综合版代码 , 支持显示用户昵称、网站、注册时间、注册IP、最近登录时间、登录IP,默认按照注册时间排序:
分析数据库发现 网站的wp_usermeta数据表占用很多空间,下面开始操作删除不活跃用户,操作前请先将数据库备份,以免操作失误误删无法找回。
以下是小白手法,欢迎大神提供更好的方法:
1.根据最近登录时间列出用户ID作为分析
将数据库的用户表wp_users 和用户信息表wp_usermeta 里的用户ID ,最后登录时间的标签和最后登录时间筛选出来作为分析。
SELECT `ID`,`user_id`,`meta_key`,`meta_value` from `wp_users` inner join `wp_usermeta` on `wp_users`.`ID`=`wp_usermeta`.`user_id` WHERE `wp_usermeta`.`meta_key` LIKE 'last_login'
2.由于网站最后是2017年9月份建立的距今差不多2年,决定删除最近半年未登录的用户。
先做筛选看是否正确。
先尝试筛选最后登录时间为2017年的用户,一定要用多条件查询,因为wp_usermeta表里面还有你的注册时间,也是时间格式,不用多条件查询会被误删。
SELECT `ID`,`user_id`,`meta_key`,`meta_value` from `wp_users` inner join `wp_usermeta` on `wp_users`.`ID`=`wp_usermeta`.`user_id` WHERE( `wp_usermeta`.`meta_value` LIKE '%2017%') AND(`wp_usermeta`.`meta_key` LIKE 'last_login')
返回数据分析一下没问题。
3.分析上面筛选数据返回正确的,开始删除不活跃用户。
如以下格式删除 最后登录 时间为2017年的用户,2018年的类似 条件更改为 2018- 即可。
DELETE FROM `wp_users` WHERE `wp_users`.`ID` = any(SELECT `user_id` from `wp_usermeta` WHERE (`wp_usermeta`.`meta_value` LIKE '%2017%') AND(`wp_usermeta`.`meta_key` LIKE 'last_login'))
以下删除2019年每月的用户,可以一个一个月的删,如以下删除 最后登录 时间 为2019年1月的用户。
DELETE FROM `wp_users` WHERE `wp_users`.`ID` = any(SELECT `user_id` from `wp_usermeta` WHERE (`wp_usermeta`.`meta_value` LIKE '%2019-01%') AND(`wp_usermeta`.`meta_key` LIKE 'last_login'))
其他月份类似………..如以下删除 删除 最后登录 时间 为2019年6月的用户。
DELETE FROM `wp_users` WHERE `wp_users`.`ID` = any(SELECT `user_id` from `wp_usermeta` WHERE (`wp_usermeta`.`meta_value` LIKE '%2019-06%') AND(`wp_usermeta`.`meta_key` LIKE 'last_login'))