Wordpress: Add all user roles on body class

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP



Wordpress: Add all user roles on body class



I found some good code to add a single user role to my body classes in Wordpress, but I'm struggling to adapt it to return all user roles for the current user (I have multiple user roles per user). I know array_shift() only returns the first item in an array, but I'm not sure what to use instead to return all roles. Any ideas?


array_shift()


function get_user_role()
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
return $user_role;


add_filter('body_class','my_class_names');
function my_class_names($classes)
$classes = get_user_role();
return $classes;





Do you want to get all roles without logged in?
– Gufran Hasan
Aug 8 at 4:16





No, all roles of the current user. I have multiple roles per user enabled on my site.
– Bobby Bosler
Aug 8 at 4:27





I have answered, Please try that one.
– Gufran Hasan
Aug 8 at 5:40




4 Answers
4



Got it! I needed to use implode() to return the array as a string. Here's my code:


implode()


function get_user_role()
global $current_user;
$user_roles = $current_user->roles;
$user_roles_list = implode(" ", $user_roles);
return $user_roles_list;


add_filter('body_class','my_class_names');
function my_class_names($classes)
$classes = get_user_role();
return $classes;



You can please add below code in theme functions.php file to get all author role as class name in body class.


add_filter('body_class','my_class_names');

function my_class_names($classes)
global $current_user;
$user_roles = $current_user->roles;
if( is_array( $user_roles ) )
$user_role = implode( ' ', $user_roles );
$classes = $user_role;

return $classes;



There are two filters body_class and admin_body_class to add classes in the body tag.


body_class


admin_body_class


function print_user_classes()
if ( is_user_logged_in() )
add_filter('body_class','restrictly_get_current_user_role');//Add user role class to front-end body tag
add_filter('admin_body_class', 'restrictly_get_current_user_role');//Adds the user id to the admin body class array


add_action('init', 'print_user_classes');


function restrictly_get_current_user_role($classes)
$user = wp_get_current_user();
$roles = ( array ) $user->roles;
$classes = implode(" ",$roles);
return $classes;


function get_user_role()
$current_user_id = get_current_user_id();
if($current_user_id > 0)
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
else
$user_role = array();

return $user_role;


add_filter('body_class','mj_class_names');

function mj_class_names($classes)
$class = get_user_role();
$classes = array_merge( $classes, $class );
return $classes;






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

make 2 or more post in bootsrap

Store custom data using WC_Cart add_to_cart() method in Woocommerce 3

Firebase Auth - with Email and Password - Check user already registered