按ID获取用户角色不起作用

时间:2014-09-19 作者:Ian Lee

我正在使用本文底部的PHP代码从用户ID获取用户角色。它可以工作,但如果用户角色在注册后发生更改,则会失败。我一直在寻找WordPress是如何改变角色的,以及为什么这会导致下面的代码无法工作,但现在却丢失了。

更新:我得到的错误是

警告:array_key_exists() 参数2应为数组

$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 ) )
        echo $role;

endforeach;

1 个回复
SO网友:Ehsaan

您可以简单地使用WP_User

$user = new WP_User( $user_id );

    foreach( $user->roles as $role ) {
     $role = get_role( $role );
     if ( $role != null )
      echo $role->name;
    }
了解更多信息WP_User

结束

相关推荐

Capabilities Not Changing

我希望编辑器能够列出、添加和编辑用户。我认为下面的代码可以做到这一点,但它不起作用-没有为任何编辑器显示新的用户菜单。我错过什么了吗?function increase_editor_role(){ $role = get_role(\'editor\'); $role->add_cap(\'list_users\'); $role->add_cap(\'edit_users\'); $role->add_cap(\'c