У мене є ця функція, щоб додати поточну роль користувача як клас у тілі.
add_filter( "body_class", "custom_class" );
function custom_class( $classes ) {
$classes[] = get_user_role();
return $classes;
}
Це не працює, і я знаю, що проблема в цьому get_user_role()
в цьому рядку:
$classes[] = get_user_role();
Що не так у цьому рядку?
Якщо я замість цього використовую цей рядок, це добре працює:
$classes[] = "someText";
Відповіді:
1 для відповіді № 1я не можу знайти функцію get_user_role () у wordpress
Я думаю, що ви шукаєте
$current_user = wp_get_current_user();
і ви можете вказати відображуване ім'я цього користувача як
$current_user->display_name
і за функцією класу тіла
add_filter( "body_class", "custom_class" );
function custom_class( $classes ) {
$classes[] = $current_user->display_name;
return $classes;
}
0 для відповіді № 2
Спробуйте код нижче:
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 для відповіді № 3
ви можете спробувати використати цей код
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");