How to check user role?

时间:2012-04-30 作者:dev-jim

我有一些必须根据用户角色执行的功能。如何检查用户角色,以便在其角色下插入相应的函数?

例如:。

if ($_GET[\'role\'] == "free member" ) {//insert funtion 1}

elseif  if ($_GET[\'role\'] == "sliver member" ) {//insert funtion 2}

else {//insert funtion 3}
我尝试使用current\\u user\\u can,如下所示:

global $get_currentuserinfo, $current_user; 
if( current_user_can(\'free_member\') ) {//insert funtion 1} 
elseif current_user_can(\'sliver_member\'){//insert funtion 2} 
else {//insert funtion 3} 
这将使用默认角色,如“编辑”、“作者”、“贡献者”。但似乎不适用于由角色管理插件创建的自定义角色。顺便说一下,我正在使用Advanced Access Manager创建自定义角色。

既然这个角色检查片段是在编写面板中使用的,那么什么方法是检查用户角色的最佳方法呢?

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

环顾谷歌几分钟后several promising results.

下面是根据The Code Collective:

function get_user_roles( $user_id ) {
    $user_roles = [];

    $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 ) )
                $user_roles[] = $role;
        }
    }

    return $user_roles;
}
这将返回作为传入的用户数组$user_id.

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register