删除WordPress多站点中的孤立用户

时间:2013-12-12 作者:urok93

我已经建立了WP Multisite,并编写了一个功能每天删除除一个博客以外的所有博客。现在,当您使用wpmu\\u delete\\u blog()函数时,博客将被删除,但其用户仍然存在,并且不会与任何站点关联。我想得到所有这些用户,并删除博客后立即删除他们。我创建的所有用户都被赋予了“demouser”角色。我该怎么做?

1 个回复
最合适的回答,由SO网友:Sven 整理而成

您需要选择所有可用的用户(请参阅$users (见下文)循环查看每一个,并确定它是否是demouser;要删除没有关联站点的所有用户(请参阅empty($user_blogs) 下面)您可以致电wpmu_delete_user() (this will require to load ms.php, 如果您正在加载主题或插件)。

只需在代码中删除博客的部分之后添加以下代码片段:

global $wpdb;
$users = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users");

foreach ( $users as $user ) :

    $user_login = $user->user_login; // get login
    $user_id = $user->ID; // get ID

    // check for name
    if ( $user_login == \'demouser\' ) :

        $user_blogs = get_blogs_of_user( $user_id ); // get related sites

        // check if empty
        if ( empty($user_blogs) ) :
            require_once ABSPATH . \'wp-admin/includes/ms.php\';
            wpmu_delete_user( $user_id ); // delete user
        endif;

    endif;

endforeach;
请注意这一点,因为它将删除未分配的用户,您将无法还原已删除的用户!

结束

相关推荐

Copy Root Multisite Site

我在WordPress中创建了一个多站点安装,位于example.com 网站位于example.com/site1, example.com/site2 等是否可以创建example.com 在example.com/site3?Blog Copier 和NS cloner 由于某种原因,不允许您创建根站点的副本。这背后的技术限制是什么?