Remove completamente o WP_Admin_Bar para funções de usuário específicas

5

Como ocultar / remover a barra de administração exibida quando um usuário com função específica está conectado? Eu percebi que tenho que fazer algo com remove_menu() , mas não exatamente o que e como.

Codex

    
por Joren 22.09.2013 / 19:12

1 resposta

6

Adicione o seguinte ao seu arquivo functions.php conforme detalhado aqui .

Desative a Barra de administradores para todos:

// Disable Admin Bar for everyone
if (!function_exists('disable_admin_bar')) {

    function disable_admin_bar() {

        // for the admin page
        remove_action('admin_footer', 'wp_admin_bar_render', 1000);
        // for the front-end
        remove_action('wp_footer', 'wp_admin_bar_render', 1000);

        // css override for the admin page
        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');

        // css override for the frontend
        function remove_admin_bar_style_frontend() {
            echo '<style type="text/css" media="screen">
            html { margin-top: 0px !important; }
            * html body { margin-top: 0px !important; }
            </style>';
        }
        add_filter('wp_head','remove_admin_bar_style_frontend', 99);
    }
}
add_action('init','disable_admin_bar');

Desative a Barra de administradores para todos, exceto administradores:

// Disable Admin Bar for everyone but administrators
if (!function_exists('disable_admin_bar')) {

    function disable_admin_bar() {

        if (!current_user_can('manage_options')) {

            // for the admin page
            remove_action('admin_footer', 'wp_admin_bar_render', 1000);
            // for the front-end
            remove_action('wp_footer', 'wp_admin_bar_render', 1000);

            // css override for the admin page
            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');

            // css override for the frontend
            function remove_admin_bar_style_frontend() {
                echo '<style type="text/css" media="screen">
                html { margin-top: 0px !important; }
                * html body { margin-top: 0px !important; }
                </style>';
            }
            add_filter('wp_head','remove_admin_bar_style_frontend', 99);

        }
    }
}
add_action('init','disable_admin_bar');

Desativar a barra de administração do WP para usuários específicos por meio do ID do usuário:

// Disable Admin Bar for specific user
if (!function_exists('disable_admin_bar')) {

    function disable_admin_bar() {

        // we're getting current user ID
        $user = get_current_user_id();

        // and removeing admin bar for user with ID 123
        if ($user == 123) {

            // for the admin page
            remove_action('admin_footer', 'wp_admin_bar_render', 1000);
            // for the front-end
            remove_action('wp_footer', 'wp_admin_bar_render', 1000);

            // css override for the admin page
            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');

            // css override for the frontend
            function remove_admin_bar_style_frontend() {
                echo '<style type="text/css" media="screen">
                html { margin-top: 0px !important; }
                * html body { margin-top: 0px !important; }
                </style>';
            }
            add_filter('wp_head','remove_admin_bar_style_frontend', 99);

        }
    }
}
add_action('init','disable_admin_bar');
    
por Christine Cooper 22.09.2013 / 19:18