在BuddyPress中使用user_id获取用户角色

时间:2012-09-24 作者:user1460692

我需要根据用户的角色对其进行分类,因此我需要单独使用user\\u id来查找用户角色(不仅针对登录用户,而且针对所有BP用户)。

像这样的$user_role=role($user_id);

2 个回复
最合适的回答,由SO网友:Gagan 整理而成

尝试此功能:

function get_user_role($user_id){
    global $wpdb;
    $user = get_userdata( $user_id );
    $capabilities = $user->{$wpdb->prefix . \'capabilities\'};
    if ( !isset( $wp_roles ) ){
        $wp_roles = new WP_Roles();
    }
    foreach ( $wp_roles->role_names as $role => $name ) {
        if ( array_key_exists( $role, $capabilities ) ) {
            return $role;
        }
    }
    return false;
}
我没有包括任何异常处理,比如用户是否存在,所以您可以自己做,或者如果您正在获取用户ID列表,甚至不需要这样做。

SO网友:umesh.nevase

我创建了一个从userid获取用户角色的函数。

function get_user_role( $user_id ){

  $user_data = get_userdata( $user_id );

  if(!empty( $user_data->roles ))
      return $user_data->roles[0];

  return false; 

}
调用get\\u user\\u role()函数获取用户的角色并将userid作为参数传递。它将返回用户角色,否则将返回false。

结束

相关推荐

BuddyPress-将新用户激活链接发送给管理员

如何将新用户激活链接发送到我自己的电子邮件地址而不是用户?有没有一个简单的函数可以用来切换东西?function bp_core_activation_signup_user_notification( $user, $user_email, $key, $meta ) { $activate_url = bp_get_activation_page() . \"?key=$key\"; $activate_url = esc_url($activate_url); $a