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 ' 17%') 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 ' 17%') 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 ' 19-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 ' 19-06%') and(`wp_usermeta`.`meta_key` like 'last_login'))