您可能希望在您的 WordPress 网站上开启注册功能,以便(举一个小例子)人们可以登录并发表评论,而无需每次都输入他们的姓名/网址/电子邮件。但是,这些用户可能不需要看到整个顶部的管理栏,因为他们可能用不到。不过请务必提供一个链接让他们编辑个人资料和退出登录。
这将用于您的 functions.php 文件或功能插件
add_action('set_current_user', 'cc_hide_admin_bar');
function cc_hide_admin_bar() {
if (!current_user_can('edit_posts')) {
show_admin_bar(false);
}
}
对我来说不起作用。所有用户仍然可以看到它。是set_current_user钩子有问题吗?我最终使用了这篇文章中的一个选项:http://digwp.com/2011/04/admin-bar-tricks/#disable-for-non-admins。
无需代码。一个非常简单易用的插件即可实现。它叫做用户前端插件。
嗨,只是想告诉你你的代码在3.5.1版本中运行良好。管理员可以看到管理栏,但普通订阅者用户看不到。
我无法使其工作。set_current_user是一个已弃用的函数。我将其挂钩到wp_footer,它起作用了。不过,它仍然在html标签顶部添加了28px的填充。
这段代码没有使用你所说的已弃用的函数set_current_user,而是使用了名为set_current_user的动作钩子,该钩子仍然有效,https://developer.wordpress.org/reference/hooks/set_current_user/ 顺便说一句,这段代码在我的23.4.18版本上运行完美——谢谢!
我正在使用S2会员插件,我可以在function.php中使用这段代码吗?
我让它在我的电脑上运行了。非常感谢。
终于搞定了。WP管理栏消失了。好文章。
只需在wp-content/themes/mytheme/functions.php中输入以下内容
show_admin_bar(false);
将mytheme替换为您主题文件夹的名称。
完美运行,放在我的子主题functions.php中
在电脑上运行正常,但在iPad Air 2上不行。
谢谢,这个方法有效。 :-)
以上解决方案对我不起作用,我使用的是WordPress 5.8.2版本
相反,下面的代码片段有效
if(!current_user_can(‘edit_posts’)){
add_filter(‘show_admin_bar’,’__return_false’);
}
我一直觉得WP管理栏过于抢眼,并且一直想隐藏它。最终,我开始编辑CSS并找到了这个解决方案
https://romangr.com/blog/wp-admin-bar
它本身并没有隐藏该栏,而是使其几乎不显眼,但仍可访问。