这可以通过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\' );
?>
请记住在之前备份数据库,因为它将在激活后直接运行,无需触发任何按钮。一旦完成删除用户,还记得停用或删除它。