DEV Community

David Loor
David Loor

Posted on • Originally published at davidloor.com on

How to add the logged-in user’s roles as classes in the body element in WordPress

coffee writing computer blogging

To add the user roles to the body of your WordPress pages, you can use the body_class hook. This hook allows you to add custom classes to the <body> element of your pages.

Example of body_class hook to add classes to the body element

Here’s an example of how you can use this hook to add the user roles to the body of your pages:

function add_user_roles_to_body_class( $classes ) {
    $current_user = wp_get_current_user();
    $user_roles = (array) $current_user->roles;
    foreach ( $user_roles as $role ) {
        $classes[] = 'role-' . $role;
    }
    return $classes;
}
add_filter( 'body_class', 'add_user_roles_to_body_class' );

Enter fullscreen mode Exit fullscreen mode

This code will get the current user’s roles and add a class to the body for each role. For example, if the user has the “editor” and “author” roles, the body will have the classes role-editor and role-author.

You can then use these classes in your CSS to style different elements differently based on the user’s role.

Note: This code should be placed in your theme’s functions.php file or in a custom plugin.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (1)

Collapse
 
teevj profile image
Steev

Hi there,
this does not work. (was so optimistic, sigh)

Tried theme folder functions.php file
AND wp-includes folder functions.php file

Using wordpress 6.4.1
Target area: wp admin backend.

Any idea what it could be ?

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs