我有一个会员网站。我需要禁用订阅服务器的管理栏。
我使用了以下代码:
add_action(\'after_setup_theme\', \'remove_admin_bar\');
function remove_admin_bar() {
if (!current_user_can(\'administrator\') && !is_admin()) {
show_admin_bar(false);
}
}
这将删除订阅服务器前端的管理栏,但当他们转到其配置文件页面wp admin/profile时。php,管理栏仍然显示在那里。
我使用的是付费会员Pro插件,我认为这使得订阅服务器的后端代码无法正常工作。
此外,我还使用此代码从任何地方删除了管理栏:
if (!function_exists(\'disableAdminBar\')) {
function disableAdminBar(){
remove_action( \'admin_footer\', \'wp_admin_bar_render\', 1000 );
function remove_admin_bar_style_backend() {
echo \'<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>\';
}
add_filter(\'admin_head\',\'remove_admin_bar_style_backend\');
}
}
add_filter(\'admin_head\',\'remove_admin_bar_style_backend\');
但是这个代码也不起作用。
我只想从前端和后端页面删除订阅服务器的管理栏。
是否缺少任何特定代码?我正在使用Paid membership Pro.
谢谢你的帮助。
最合适的回答,由SO网友:Gonçalo Figueiredo 整理而成
我对此做了一个快速的研究,我认为你不能使用函数,正如codex.
注意:查看管理屏幕时,不再可能隐藏工具栏,但用户可以在其配置文件屏幕的网站前端禁用工具栏。
在前端禁用会产生与您之前相同的结果。
我建议用css隐藏它。
#wpadminbar {
display: none;
}
html {
padding-top: 0; // Move up the page\'s content by the bar\'s height
}
SO网友:mica
我也必须这样做,但要为编辑保留酒吧&;管理员,但删除其他角色。我是这样做的:
在中functions.php
function check_user_role($roles, $user_id = null) {
if ($user_id) $user = get_userdata($user_id);
else $user = wp_get_current_user();
if (empty($user)) return false;
foreach ($user->roles as $role) {
if (in_array($role, $roles)) {
return true;
}
}
return false;
}
也在functions.php
// show admin bar only for admins and editors
if (!check_user_role(array(\'administrator\',\'editor\'))) {
add_filter(\'show_admin_bar\', \'__return_false\');
}
SO网友:John Doe
show_admin_bar(false)
在后端页面上不起作用。如果要从后端删除管理栏挂钩,则必须删除它们。
function remove_admin_bar_hooks() {
// Removes the hooks that render the admin bar.
remove_action(\'template_redirect\',\'_wp_admin_bar_init\', 0);
remove_action(\'admin_init\',\'_wp_admin_bar_init\');
remove_action(\'before_signup_header\',\'_wp_admin_bar_init\');
remove_action(\'activate_header\',\'_wp_admin_bar_init\');
remove_action(\'wp_body_open\',\'wp_admin_bar_render\',0);
remove_action(\'wp_footer\',\'wp_admin_bar_render\',1000);
remove_action(\'in_admin_header\', \'wp_admin_bar_render\', 0);
// Removes the admin bar class from the body tag.
add_filter(\'body_class\',function($wp_classes, $extra_classes) {
// Deletes the admin-bar class from the arrays if present.
return array_diff(
array_merge( $wp_classes, (array) $extra_classes ),
array(\'admin-bar\')
);
},10000,2);
}
有关更多信息,请参阅本文:
https://blog.terresquall.com/2021/09/remove-the-admin-bar-on-the-wordpress-admin-backend/