是否按角色批量删除用户?SQL?

时间:2016-03-11 作者:Robert Andrews

我需要批量删除大量(4321)用户,所有特定角色类型(不是现成的角色名称)。

我尝试了在线找到的几个函数,并尝试了批量删除(WPBulk)插件,但都出现了500服务器错误。(我最近扩展了服务器的最大值,以允许更多的处理)。我怀疑更改用户列表中可见的用户数量可能会破坏一切。

我怀疑最好的答案是在phpMyAdmin中使用SQL。我需要一些人手(例如,在UI的“SQL”框中输入查询?)。用户在wp\\u usermeta中有许多自定义字段。

谢谢你。

1 个回复
SO网友:Luis Sanz

这可以通过SQL查询高效地完成,但设置起来并不容易。它必须删除用户及其元数据,以重新分配相关帖子,等等。

由于这是一个只运行一次的操作,不会对性能产生任何持久的影响,我认为可以通过使用一些WordPress核心功能以非常简单的方式实现:

<?php

    /*
        Plugin Name: Delete users by role
        Description: Delete all the users with a hardcoded specific role
        Version: 0.1
        Author: Your name
        Author URI: http://www.yoursite.com/
    */

    function wpse220426_delete_users_by_role() {

        $args = array(
            \'role\'         => \'user_defined_role\' // Modify to match your needs
        );

        $users_to_delete = get_users( $args );

        foreach( $users_to_delete as $user_to_delete ) :

            // wp_delete_user() accepts another user ID as a second parameter
            // in case you want to reassign the content to an active user
            wp_delete_user( $user_to_delete->ID );

        endforeach;

    }
    add_action( \'admin_init\', \'wpse220426_delete_users_by_role\' );

?>
请记住在之前备份数据库,因为它将在激活后直接运行,无需触发任何按钮。一旦完成删除用户,还记得停用或删除它。

相关推荐

Assign postmeta in bulk

我有我的页面的元参数,我想批量更改(大约300页)。我知道元名称是“header settings”,值可以是“no data”、“site data”和“page data”我还有一个函数。theme developer的php脚本专门用于解决此任务,但它不起作用。那么,有没有正确的方法来大规模分配这个元?我想header-settings 未来page-data$posts = get_posts( array( \'post-type\' => \'page\',&#x