通过编写一个简单的函数并将其挂接到与用户相关的操作上,您应该能够自己做到这一点(您是想做一次还是持续做一次取决于您自己)。
有几种不同的方法可以触发它,但也许我能想到的最简单的方法就是profile_update
钩子,以便每次保存用户时都能运行它。你也可以user_register
因此,每次添加新用户时,它都会运行,以确保数据保持同步。为了测试这一点,您需要尝试保存现有用户或创建新用户,因为这将触发动作挂钩。
add_action( \'profile_update\', \'wpse_assign_abc_role_to_xyz_users\', 10 );
add_action( \'user_register\', \'wpse_assign_abc_role_to_xyz_users\', 10 );
function wpse_assign_abc_role_to_xyz_users() {
$args = array(
\'role\' => \'xyz\', // Set the role you want to search for here
\'role__not_in\' => array( \'abc\' ), // If they already have abc role, we can skip them
\'number\' => \'500\', // Good idea to set a limit to avoid timeouts/performance bottlenecks
);
$xyz_users = get_users( $args );
// Bail early if there aren\'t any to update
if ( count( $xyz_users ) === 0 ) return;
// get_users() returns an array of WP_User objects, meaning we can use the add_role() method of the object
foreach ( $xyz_users as $user ) {
$user->add_role( \'abc\' );
}
}
这将假定您已经添加了
abc
角色使用
add_role
以便WP意识到这一点。
不幸的是,我现在无法测试它,但我会稍后再尝试测试,不过这会让您朝着正确的方向前进。