一旦用户登录 wordpress 并让用户角色在 body class="" 中,我正在尝试添加用户角色
function my_class_names($classes) {
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
if ( is_user_logged_in() ) {
$classes[] = $user_role;
}
return $classes;
}
add_filter('body_class','my_class_names');
Run Code Online (Sandbox Code Playgroud)
我不是一个 php 人,已经尝试过研究,我找到了如何获取用户角色,另一篇文章是如何添加 body 类,我在如何让它们都工作时遇到了麻烦。我希望有人能帮助我解决这个花了 2 多个小时试图自己解决这个问题的方法:(
您可以将您的功能更改为此
function get_user_role() {
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
return $user_role;
}
Run Code Online (Sandbox Code Playgroud)
然后,像这样改变你的身体标签
<body <?php body_class( get_user_role() ); ?>>
Run Code Online (Sandbox Code Playgroud)
如果用户未登录,则不会添加任何内容。
或者你也可以添加一个更多的功能(来自 codex)
add_filter('body_class','my_class_names');
function my_class_names($classes) {
$classes[] = get_user_role();
return $classes;
}
Run Code Online (Sandbox Code Playgroud)
那可行。
小智 5
add_filter('body_class','add_role_to_body');
function add_role_to_body($classes) {
$current_user = new WP_User(get_current_user_id());
$user_role = array_shift($current_user->roles);
$classes[] = 'role-'. $user_role;
return $classes;
}
Run Code Online (Sandbox Code Playgroud)
在我的案例中,通过将用户角色类添加到正文类,此代码可以完美运行:)
只需将代码复制到 function.php 并将其粘贴到理想的位置;)
| 归档时间: |
|
| 查看次数: |
5184 次 |
| 最近记录: |