函数get\\u userdata()将返回一个WP\\u用户对象,以便您可以访问用户登录(又名用户名)。此外,一旦变量中有了WP\\u用户对象,就可以
$变量->添加\\u角色()
总的来说,是这样的:
add_action(\'user_register\', \'add_role_to_new_user\', 10, 1);
function add_role_to_new_user( $user_id ) {
$newUser = get_userdata( $user_id ); //WP_User object so we can get the login name
$newRoleName = $newUser->user_login; // login name in variable
$newUser->add_role(
$newRoleName,
__( $newRoleName ),
array(
\'read\' => true, // true allows this capability
\'edit_posts\' => true,
\'delete_posts\' => false, // Use false to explicitly deny
); //
}
}
Just to clarify some usage as your needs/intent may dictate approach:
对于@iyrin的wp\\u get\\u current\\u user点,返回当前登录用户的id。如果注册过程发生了变化(需要双重选择等),那么wp\\u get\\u current\\u user是否有值?不知道。
get\\u userdata这里从新注册的用户那里获取id,无论他们是否登录。
其次,使用wp\\u update\\u用户将replace 角色的价值add\\u role将仅添加角色,而不会删除以前的任何角色。
因此,如果您的注册提供了一个subscriber角色,那么除此之外,add\\u role还会添加一个带有用户登录名的角色wp\\u update\\u user将用用户的登录名角色替换订阅服务器角色。
我希望这有帮助。