在运营
WordPress 网站时,
恶意注册用户是许多站长都会遇到的困扰。这些从未登录过的无效用户不仅会占用数据库空间,还可能影响网站性能。有站长曾遭遇短时间内被恶意注册 70 万用户的情况,导致数据库体积骤增 1G,严重影响了网站的正常运行。因此,实现定时自动删除这类恶意用户就成了必要的优化手段。
要实现
定时删除从未登录的恶意注册用户,可以通过添加一段自定义代码来完成,具体步骤如下:
首先需要定义清理任务的执行频率,代码中通过
cron_schedules
过滤器设置了每隔 10 分钟执行一次的周期(可根据实际需求调整
interval
的值,单位为秒):
通过
wp_schedule_event
函数启动定时任务,确保任务在网站运行时按设定周期执行:
核心逻辑是筛选出符合 “从未登录” 条件的用户并删除。代码中以
jh
字段为空作为判断依据(可根据实际用户表结构修改筛选条件,例如通过
last_login
字段判断是否从未登录),然后调用
wp_delete_user
函数删除用户:
- 内容继承问题:如果被删除的用户曾发布过文章、评论等内容,若未在
wp_delete_user
函数中指定内容继承者(第二个参数),这些内容会被一并删除。但由于恶意注册用户通常从未登录和操作,因此无需担心此问题。
- 筛选条件调整:代码中的
jh
字段仅为示例,实际使用时需根据网站用户表的实际结构修改,例如通过判断last_login
是否为空或为特定值,精准定位 “从未登录” 的用户。
- 周期合理性:清理周期需根据网站恶意注册的频率调整,过于频繁可能增加服务器负担,间隔太长则可能导致无效用户堆积。
通过上述方法,WordPress 网站可以自动定时清理从未登录的恶意注册用户,有效减轻数据库负担,保障网站运行效率。