Tengo esta función para agregar el rol de usuario actual como una clase en el cuerpo.
add_filter( "body_class", "custom_class" );
function custom_class( $classes ) {
$classes[] = get_user_role();
return $classes;
}
No funciona y sé que el problema es get_user_role()
en esta linea:
$classes[] = get_user_role();
¿Qué hay de malo en esta línea?
Si uso esta línea en su lugar, funciona bien:
$classes[] = "someText";
Respuestas
1 para la respuesta № 1no puedo encontrar la función get_user_role () en wordpress
Creo que estas buscando
$current_user = wp_get_current_user();
y puede señalar el nombre para mostrar de ese usuario como
$current_user->display_name
y en la función de clase corporal
add_filter( "body_class", "custom_class" );
function custom_class( $classes ) {
$classes[] = $current_user->display_name;
return $classes;
}
0 para la respuesta № 2
Por favor, intente el siguiente código:
function get_current_user_role() {
if(is_user_logged_in()) {
$user = wp_get_current_user();
$role = (array) $user->roles;
return $role[0];
}
else {
return false;
}
}
-1 para la respuesta № 3
puedes intentar usar este código
function custom_class($classes) {
global $current_user;
$user_role = array_shift($current_user->roles);
$classes[] = $user_role;
return $classes;
}
add_filter("body_class","custom_class");