删除订阅者的管理栏

时间:2018-09-12 作者:Jitendra Mishra

我有一个会员网站。我需要禁用订阅服务器的管理栏。

我使用了以下代码:

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.

谢谢你的帮助。

6 个回复
最合适的回答,由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网友:Deepak

要对非管理员用户隐藏管理栏,请向函数中添加以下代码。php文件

// show admin bar only for admins
if (!current_user_can(\'manage_options\')) {
    add_filter(\'show_admin_bar\', \'__return_false\');
}
// show admin bar only for admins and editors
if (!current_user_can(\'edit_posts\')) {
    add_filter(\'show_admin_bar\', \'__return_false\');
}

SO网友:Jason Coleman

PMPro团队制作了一个插件来实现这一点:https://wordpress.org/plugins/hide-admin-bar-from-non-admins/

包括完全隐藏管理栏所需的PHP和CSS代码:https://plugins.svn.wordpress.org/hide-admin-bar-from-non-admins/trunk/hide-admin-bar-from-non-admins.php

function habfna_hide_admin_bar_settings()
{
?>
    <style type="text/css">
        .show-admin-bar {
            display: none;
        }
    </style>
<?php
}
function habfna_disable_admin_bar()
{
    if(!current_user_can(\'administrator\'))
    {
        add_filter( \'show_admin_bar\', \'__return_false\' );
        add_action( \'admin_print_scripts-profile.php\', \'habfna_hide_admin_bar_settings\' );
    }
}
add_action(\'init\', \'habfna_disable_admin_bar\', 9);

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/

SO网友:arsenkrylov
// Disable admin topbar for all roles except admins:
add_action(\'after_setup_theme\', \'remove_admin_bar\');

function remove_admin_bar() {
if (!current_user_can(\'administrator\') && !is_admin()) {
    show_admin_bar(false);
}

}

结束

相关推荐

WordPress页面中的动态php

我创建了一个简单的设计,用于向团队成员展示there图像,并与modal(引导程序4)链接。其显示如下: <div class=\"col-lg-4 col-sm-6 text-center mb-4\"> <img class=\"rounded-circle img-fluid d-block mx-auto\" src=\"<?php echo get_template_directory_uri(); ?>/images/bestuur/