How To Remove WordPress Admin Bar For Everyone Except Administrators

In last post I showed you how to remove WordPress admin bar from your WordPress site. Now, it’s time to show how you can remove the WordPress admin bar for everyone except administrators of your WordPress. In this way, only you will see the admin bar in the front-end. I personally applied this code on this website.

This is something you would like to add on your client’s WordPress website.

Just add following code to your theme’s functions.php file to remove the admin bar:

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

    function df_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','df_disable_admin_bar');