web-dev-qa-db-ja.com

Buddypressでuser_idを使用してユーザーロールを取得します

ロールに応じてユーザーを分類する必要があるので、user_idを単独で使用してユーザーロールを見つける必要があります(ログインユーザーだけでなく、すべてのBPユーザーに対して)。

このようなもの$user_role=role($user_id);

3
user1460692

この機能を試してください。

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リストを必要とさえしないようにしている場合。

4
Gagan

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_user_role()関数を呼び出してユーザーの役割を取得し、ユーザーIDをパラメーターとして渡します。ユーザーロールを返します。それ以外の場合はfalseを返します。

4
umesh.nevase