Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Wordpress Role Display Name

I am looking for a neat way to get the Wordpress role display name.

When you add the role (e.g. add_role( 'special', 'A Special Role'); ), you get to set a display name.

When you get the role (e.g. get_role( 'special' ); ) the role object returned simply has the name and the capabilities object.

WP_Role Object(
[name] => special
[capabilities] => Array() )

And no display name. The display name is used all over the WP Admin back-end (users.php and user-edit.php), but it's a rabbit warren ... and I haven't been able to find a function that will return it. You can readily see it in the wp_user_roles row in the wp-options table - surely I don't need to go there?

like image 495
Dave Spencer Avatar asked Jul 31 '14 13:07

Dave Spencer


1 Answers

If you are running a non-english WordPress site and want to display the proper (translated) Role name, as it appears in all WordPress administration pages, here's how to do it:

    global $wp_roles;
    echo translate_user_role( $wp_roles->roles[ $role ]['name'] );

where $role is the role name (i.e. 'special' in the original question).

Note: translate_user_role is a WordPress core not-so-documented function.

like image 159
marcochiesi Avatar answered Sep 22 '22 02:09

marcochiesi