显示当前用户分配给哪个角色

时间:2015-09-28 作者:mikelovelyuk

WordPress安装的管理面板上是否有一个部分只显示当前登录用户的角色?

例如,我知道我有管理员权限,因为我know 但我看不到任何地方证实了这一点。

此外,如果我将自己设置为编辑,如何快速检查我是否确实以编辑身份登录?(除了“知道”之外)。

如果你一次做10件事却迷失了方向,知道这一点真的很好。

也许在“你好…”之后再展示一下会很好在右上角。

EDIT

在任何人加入并提及用户面板之前。是的,我可以看到有一个角色栏(因为我是一个管理员),但是仅仅是一个贡献者的人是看不到的,对吗?

3 个回复
SO网友:TheDeadMedic

正如您所建议的,以下是如何在管理栏中显示用户名旁边的角色:

function wpse_203917_admin_bar_menu( $wp_admin_bar ) {
    if ( ! $node = $wp_admin_bar->get_node( \'my-account\' ) )
        return;

    $roles = wp_get_current_user()->roles;

    $node->title .= sprintf( \' (%s)\', implode( \', \', $roles ) );

    $wp_admin_bar->add_node( $node );
}

add_action( \'admin_bar_menu\', \'wpse_203917_admin_bar_menu\' );

SO网友:bueltge

您可以检查当前用户的角色,并将该值添加到管理栏,如配置文件项。

要获取当前用户的角色,请使用以下小功能:

/**
 * Returns the translated role of the current user. 
 * No role, get false.
 *
 * @return string The translated name of the current role.
 **/
function fb_get_current_user_role_fixed() {
    global $wp_roles;

    $current_user = wp_get_current_user();
    $roles = $current_user->roles;
    $role = array_shift( $roles );

    return isset( $wp_roles->role_names[ $role ] ) ? translate_user_role( $wp_roles->role_names[ $role ] ) : FALSE;
}
这也是一个将函数中的值添加到管理栏的示例,在我的示例中,是管理栏中帐户项目的新条目。

add_action( \'admin_bar_menu\', \'fb_change_admin_bar_item\' );
/**
 * Add item to the admin bar, to the my-account item.
 *
 * @param Array $wp_admin_bar
 */
function fb_change_admin_bar_item( $wp_admin_bar ) {

    $args = array(
        \'id\'     => \'user_role\',
        \'title\'  => __( \'Role:\' ) . \' \' .     fb_get_current_user_role_fixed(),
        \'parent\' => \'my-account\' 
    );
    $wp_admin_bar->add_node( $args );
}
将结果视为屏幕截图,更容易理解示例的目标。enter image description here

作为第二个示例的备选方案,在管理栏的默认标题上,将角色名称添加到用户名中。

add_action( \'admin_bar_menu\', \'fb_change_admin_bar_item\' );
function fb_change_admin_bar_item( $wp_admin_bar ) {

    $node = $wp_admin_bar->get_node( \'my-account\' );

    if ( ! $node ) {
        return $wp_admin_bar;
    }

    $node->title .= \' \' . fb_get_current_user_role_fixed();

    $wp_admin_bar->add_node( $node );
}
这里还有一个结果截图。

enter image description here

SO网友:mondi

我只是使用:

global $current_user; echo array_shift($current_user->roles);
显示当前用户角色。