我试图做到的是,首先,我要在我的网络中创建一个新用户。
wp_create_user(\'newuser\', \'password\', \'test@user.com\');
此时
newuser
\'s角色是订阅者(在网络中)-现在我应该将此用户移动到子网站,并更改其作为编辑器的角色。因此,它将是我网络中的订阅者,但是子网站中的编辑器。
$user = get_user_by(\'login\', \'newuser\');
add_user_to_blog( 2, $user->ID, \'editor\' );
从逻辑上讲,这应该是可行的,对吗?但由于某种原因,用户的角色数组是空的(在子网站中,在网络中,其仍然是订阅者),即使在子网站的仪表板中,它显示“编辑器”。之后我也尝试更改角色,但角色数组保持为空。
我错过了什么?
SO网友:Carolina Smith
Nikolay
我无法对自己的问题发表评论,所以我想给出一个宽松的答案是最好的也是唯一的回复方式。
我如何获得角色:
$user = get_user_by(\'login\', \'newuser\');
$user_meta = get_userdata($user->ID);
$user_roles = $user_meta->roles;
我不使用任何插件。新鲜WP多站点我还尝试了一个小技巧来克服这个问题:
if(empty($user_roles)) {
$wp_user_object = new WP_User($user->ID);
$wp_user_object->add_role(\'editor\');
}
但是角色数组仍然为空,我无法使用移动的用户登录子网站。
有趣的是,在子网站的仪表板中,您可以看到用户是一个“编辑器”
EDIT:无法对我自己的问题发表评论,因为此帐户在不同的stackexchange论坛中使用,我以来宾身份发布了此问题。杜克