是否在用户一段时间未登录后从多站点中删除用户?

时间:2014-02-10 作者:David Labbe

当用户登录到我的多站点上的任何站点时,我已将此添加到用户中。

update_user_meta( $user_id, \'_last_login\', time() );
现在,我想删除过去6个月内未登录的所有用户。我正在寻找这个版本的sql,因为我会将它包含到计划任务中,每周运行一次以清理数据库。

        $time = strtotime(\'-1 hour\');
        $user_query = new WP_User_Query(array(\'meta_key\' => \'_last_login\', \'meta_value\' => $time, \'meta_compare\' => \'<=\', \'fields\' => \'ID\'));

        if (!function_exists(\'wpmu_delete_user\')) {
            include(ABSPATH . "wp-admin/includes/ms.php");
        }

        if ($user_query->results) {
            foreach ($user_query->results as $old_user) {
                wpmu_delete_user($old_user);
            }
        };

1 个回复
SO网友:s_ha_dum

如果您的代码有效,请使用它。

在纯SQL中应该可以做到这一点,这可能更有效,但不要这样做。相反,除非您使用核心代码遇到可识别的问题(例如超时),并且无法解决这些问题,否则不要求助于纯SQL解决方案。

原因是,如果数据库结构或其他核心功能发生变化,那么基于核心功能的代码应该(可能)继续存在。基于纯SQL的代码可能不会。

结束

相关推荐

order users with drag'n'drop?

有很多插件可以让你通过拖放来订购页面和/或帖子。是否有与订单用户类似的内容?如果没有,是否可以为此创建一个插件(即是否有足够的过滤器、操作等)?