您可以检查当前用户的角色,并将该值添加到管理栏,如配置文件项。
要获取当前用户的角色,请使用以下小功能:
/**
* 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 );
}
将结果视为屏幕截图,更容易理解示例的目标。
作为第二个示例的备选方案,在管理栏的默认标题上,将角色名称添加到用户名中。
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 );
}
这里还有一个结果截图。