This is a quick guide that explains how to print the current user role as a body class in the WordPress Admin and/or the Frontend, it can also be used to print the user ID as a Class.
Why would you want to do this? Well if you have found this article then you probably already have a reason, we use it to style page elements for certain classes and even hide parts of a page to a user on both the frontend and backend. This isn’t the best method to hiding elements but can provide a temporary solution.
The function below will detect the current user and then print their role and id as a body class in the WP Admin and in the frontend of the site, for example, class="administrator user-id-1"
. This function will only run if the user is logged in.
/** * Add User Role Class to Body * Referenced code from http://www.studiok40.com/ */ function print_user_classes() { if ( is_user_logged_in() ) { add_filter('body_class','class_to_body'); add_filter('admin_body_class', 'class_to_body_admin'); } } add_action('init', 'print_user_classes'); /// Add user role class to front-end body tag function class_to_body($classes) { global $current_user; $user_role = array_shift($current_user->roles); $classes[] = $user_role.' '; return $classes; } /// Add user role class and user id to front-end body tag // add 'class-name' to the $classes array function class_to_body_admin($classes) { global $current_user; $user_role = array_shift($current_user->roles); /* Adds the user id to the admin body class array */ $user_ID = $current_user->ID; $classes = $user_role.' '.'user-id-'.$user_ID ; return $classes; return 'user-id-'.$user_ID; }
You can use this function in a MU plugin or as a standalone plugin or even in your theme functions.php.