让代码更简单

WordPress使用WP-Cron 定时任务删除从未登录的用户

重要:本文最后更新于2019-04-10 11:03:53,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

开放了注册登录的WordPress网站应该都有被恶意注册的经历,看着后台里一大片的假用户,手动删除的痛苦只有站长知道。WordPress给我们提供了丰富的函数,让我们可以根据条件,自由添加、编辑、删除、修改WordPress网站的数据,用户也是一样。下面跟我一起试试使用WordPress定时任务WP-Cron 来自动删除未登录的用户吧,代码未实测,应该没有问题,欢迎反馈!

WordPress教程

WordPress教程

将下面代码放在主题目录下的functions.php文件中即可。

复制
//定时任务
add_filter( 'cron_schedules', 'salong_add_every_time' );
function salong_add_every_time( $schedules ) {
    $schedules['every_time'] = array(
        'interval'  => 600,
        'display'   => __( '每隔10分钟', 'salong' )
    );
    return $schedules;
}
if ( ! wp_next_scheduled( 'salong_add_every_time' ) ) {
    wp_schedule_event( time(), 'every_time', 'salong_add_every_time' );
}
add_action( 'salong_add_every_time', 'salong_every_time_update_douban_average' );
function salong_every_time_update_douban_average() {
	$blogusers = get_users(array( 'meta_key' => 'jh' ,'meta_value' => '' ));//我这里检查jh字段为空的用户,大家可以自由修改
	 foreach ( $blogusers as $user ) {	
                wp_delete_user( $user->ID );//删除用户
	 }
}

需要注意的是,如果被删除用户有发表过文章等内容,不指定删除后由谁继承,将会全部删除。当然,这里是恶意注册用户,都没登录过,不存在这个问题,直接删就行了。

感觉很棒!可以赞赏支持我哟~

1 打赏

评论 (5)

登录后评论
那会不会出现,刚注册的用户,还没来得及登陆,刚好遇到10分钟到了,然后就被删除了?
。。。那要不然你手动触发删除?
考虑通过时间戳来进行判断一下就可以了
有没有插件?比如可以选择从来没有评论过的,或者某个时间段注册的,或者没有头像的,或者没有邮件激活的……
每网站的注册信息不一样,我也不知道你有哪些。
QQ咨询 邮件咨询 狗哥推荐