Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

How to Disable WordPress Admin Bar for All Users Except Administrators

Some readers have asked us how to disable the WordPress admin bar. While it’s a small tweak, some users prefer to do this for various reasons, such as maintaining a cleaner user interface or enhancing the user experience for non-admin users.

By default, you can easily disable the WordPress admin bar for individual users. However, this can be time-consuming if you have a large number of registered users on your site.

In this article, we will show you how to easily disable the WordPress admin bar for all users except administrators.

How to disable WordPress Admin Bar for All Users except administrators

What Is the WordPress Admin Bar?

By default, WordPress shows an admin bar at the top of the screen for all logged-in users. When you are logged into your account, you can see this toolbar in the WordPress admin area and all other pages.

The WordPress admin bar

The WordPress admin toolbar has useful shortcuts to different backend areas of WordPress, and these shortcuts change based on a user’s role and permissions in WordPress.

However, the admin bar can be distracting when you are looking at the front end of your website.

It may also affect your website’s design and user experience. This can be a problem if you are building or managing a WordPress site for a third party, as it stops them from seeing what their website really looks like.

Luckily, there are multiple ways to disable the admin bar for all users except administrators. Simply use the quick links below to jump to the method you want to use:

Video Tutorial

Subscribe to WPBeginner

If you prefer written instructions, then just keep reading.

Method 1: Change Each User’s Permissions in WordPress

You can disable the admin bar for specific users by simply editing their user profile. This is a quick and easy method if you just need to remove the bar for a small number of people. However, if you run a membership site with a lot of users, then we recommend choosing a different method.

To remove the admin bar manually, simply go to the Users » All Users page in the WordPress admin dashboard. Then hover your mouse over the WordPress user who doesn’t need the admin bar, and click on ‘Edit’ when it appears.

How to edit a user's profile in WordPress

This will bring open that user’s profile.

From here, uncheck the box next to the ‘Show toolbar when viewing site’ option.

How to hide the admin toolbar for non-admin users

After that, scroll to the bottom of the screen and click on ‘Update User’ to save your changes. This will disable the admin bar for that specific person only.

To hide the toolbar for more users, simply follow the same process described above.

Method 2: Use Code to Disable Admin Bar for Non-Admin Users (Recommended)

If you need to hide the admin bar for lots of different people, then changing each user’s settings manually would take a lot of time and effort.

For that reason, we recommend disabling the admin bar by adding code to the functions.php file, which is a WordPress theme file.

Some guides will tell you to edit the theme files manually, but this can cause common WordPress errors and may even completely break your website.

For that reason, we recommend using WPCode. It is the best code snippet plugin and makes it easy to add custom code in WordPress without putting your site at risk.

We’ve used WPCode to change the admin color scheme, remove the ‘Howdy Admin’ text, disable the Screen Options button, and more.

First, you will need to install and activate the free WPCode plugin. For more information, see our step-by-step guide on how to install a WordPress plugin.

Once the plugin is activated, go to Code Snippets » Add Snippet.

Hiding the admin toolbar using WPCode

Here, you will see all the pre-made snippets you can add to your site.

In fact, WPCode has the exact code snippet you need to disable the admin bar in its built-in Snippet Library. Simply go to Code Snippets » Library.

The WPCode code snippet plugin for WordPress

Here, search for ‘Disable The WP Admin Bar’.

When the right snippet shows up, just click on its ‘Use Snippet’ button.

The ready-made Disable The WP Admin Bar code snippet

The plugin will automatically add the code to your site, give the code a descriptive title, choose the correct insertion method, and even add tags to help you identify the snippet.

Here’s what the code looks like:

/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );

Now, if your goal is to disable the admin bar for all users, then all you need to do is toggle the switch from ‘Inactive’ to ‘Active’ and then click on ‘Update’.

Adding custom code to WordPress

However, since our goal is to disable the WordPress admin bar for non-admin users, then we need to make some small tweaks to the code.

You can replace the existing code with the following:

/* Disable WordPress Admin Bar for all users except administrators */
add_filter( 'show_admin_bar', 'restrict_admin_bar' );

function restrict_admin_bar( $show ) {
    return current_user_can( 'administrator' ) ? true : false;
}

This code identifies any non-admin users who are not currently looking at the admin dashboard. For these users, it disables the WordPress admin bar.

After that, scroll down the page to the ‘Insertion’ section. Here, you can keep the default’ Auto Insert’ method to make sure the code runs everywhere.

Automatically inserting code into a WordPress website

Finally, scroll to the top of the screen and click on the ‘Inactive’ slider so that it shows ‘Active.’

Then, just click the ‘Save Snippet’ or ‘Update’ button to make the code snippet live.

Publishing a code snippet to disable the WordPress admin bar for non-admin users

That’s it! Just remember to check your WordPress website to make sure everything is working fine.

Method 3: Use a Free Plugin to Disable Admin Bar for Non-Admin Users

If you don’t want to add code to your website, then you can hide the admin bar using a plugin. Hide Admin Bar Based on User Roles lets you remove the toolbar based on different user roles, so this is a good choice if you want to disable the bar for all members, WooCommerce customers, or some other user role.

First, you need to install and activate the Hide Admin Bar Based on User Roles plugin. For more details, see our step-by-step guide on how to install a WordPress plugin.

Upon activation, you need to go to the Settings » Hide Admin Bar Settings page. From here, check the boxes next to the user roles where you want to disable the admin bar.

Hiding the admin toolbar for specific user roles

With that done, simply click on ‘Save Changes’ to store your settings.

We hope this article helped you learn how to disable the WordPress admin bar for all users except administrators. You may also want to see our guide on how to get email notifications for post changes in WordPress and our expert picks of the best WordPress activity log and tracking plugins.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

169 CommentsLeave a Reply

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Destiny Boy

    This was very simple ans straight forward, it helped me

  3. ronald osoo

    This code has bug , its working but not bullet proof . The normal user can by -pass this and get access to the user admin like panel at the top by just adding wp-admin/ to the url like trying to login

    • Math

      I agree, direct access to wp-admin/profile.php is making this useless.

      • Steve

        A lot of websites not only from wordpress have the same option. You can acces to the admin-login page of any website just writing example.com/admin : Thats normal. I find it’s look really good without the adminbar.

  4. Alex S

    Hello,
    I wish your syntax highlighter was better. Tried to copy the code and got the numbers starting at 2. I don’t need your numbers, just the good code. I would use this site a lot more if this was not the case.

    Thanks.

    • WPBeginner Support

      You can also click on the little button on top right corner of the code snippet. It will open the raw code in a popup, which is much easier to copy.

      Admin

      • stefano

        It works well, but the bar remains for visitors, who have not made the LOGIN

  5. Jenn

    This plugin was working great and I was using Theme My Login. When I deactivated that plugin it is not not functioning as before… I see the admin bar for all users. Any suggestions?

    • Jenn

      Sorry I meant to say this ‘code’ was working great. I created a site-specific plugin as well and everything was working great. But after deactivating Theme My Login, not it seems to not have any effect and I see the admin bar on all users.

      Suggestions?

      • Jenn

        I just tried adding in the code for all users: show_admin_bar(false); and I can still see the admin bar.

  6. Alexander Pardo

    Thank you very much ! A very simple and clean solution. :)

  7. Jason A. Churchill

    I’m not well-read in editing the functions.php file. My first two attempts resulted in syntax error messages.

    Where exactly should I place this code in the functions.php file?

    • WPBeginner Support

      At the end. If your functions.php file ends with ?> then you need to paste the code just before it.

      Admin

  8. Terry Hale

    Thanks so much for this! No plugins, nice, clean, simple.

  9. Bhris

    Great straight-to-the-point tutorial.

    Is there a version of the code that will block all non-users. That is, visitors to the site won’t see the bar, while all logged-in users would?

  10. Shashi

    I was trying to do what what was mentioned in the article and it did not work. I used the following instead which did the trick from me:

    if ( ! current_user_can( ‘manage_options’ ) ) {
    show_admin_bar( false );
    }

    The above was mentioned in the wordpress codex: http://codex.wordpress.org/Function_Reference/show_admin_bar

    • vipin

      Thanks a lot its really cool…………

    • Karen

      Neither worked for me. I copied the numbers with the text as I did not know that I could
      click on the button on top right corner of the code snippet and copy the raw code. I removed the numbers, but overlooked the seven. I had to change the file entry in via my file manager as I could no longer edit the functions.php. So after a scare and a bit of back and forth I removed the number and the admin bar is still there. I also tried your code Shashi, but it’s not working either. :-(
      I have tried every plugin under the sun and nothing will remove the bar.

  11. kim04099

    Thank You!!

  12. Che Boielle

    Fastest fix to an odd issue I’ve ever found and implemented. Great explanation simple to follow instructions. Thanks guys, will be book marking your site.

  13. Manthan

    Thanks, Its the easiest way found..!!!

  14. Anup

    Why not simply do this for any specific user.

    • Jack

      It would be hard to do this if you have many users.

  15. Róger Marroni

    Great job man!

    thank you very much!

  16. Mega

    I tried and my site is black.

    • Ryan S

      the first step works fine, it is something in your end, maybe while implementing the code

  17. Etienne

    Perfect piece of code… Thanks a lot!

    Cheers

  18. Nathan Jansen

    Use this if you want this only for a certain role

    function remove_admin_bar() {
    $user = wp_get_current_user();

    if (in_array(‘subscriber’, $user->roles)) {
    show_admin_bar(false);
    }
    }

  19. meef

    Godbless You. Answers to my problem always come from you post.

    Thanks

  20. Prem

    Finally I got the answers Thank you

  21. Paw Pet Directory

    I used this on my directory for my customers but the bar will not go away for them. I am using 3.8 with AppThemes Vantage Theme (Latest)

  22. Cory

    This is one of those things that, because it’s such a small customization, I’d hate to use a plugin for. So being able to throw this short piece of code into my child theme’s functions.php made me super happy. Thanks so much far sharing! Works like a charm.

  23. Raman

    Thanks for posting it was useful.

  24. Naveen

    I have added this code it is working fine, but if a user takes meta there is an option yo view the admin, if i click on this the admin page can see, how to avoid this, i dont want to give admin panel to the users, a user can edit the url and give /wp-admin also he can see the admin, i dont want both what will do for this?

  25. Subodh

    Admin bar is hidden but now how can a user log out?
    I am using bbpress forum and a plugin for users to log in via their Facebook account to join forum. But find no option for logging out.

  26. Loralee

    Thanks for the great tutorial. I thought it didn’t work – and then silly me I hadn’t followed the last step to activate my new plugin!! Thanks so much for this! So much better than installing multiple new plugins.

  27. vikas

    Thanks mate….u were really helpful…
    tc :-)

  28. Rajat

    Thx syed it just worked perfectly

  29. Bongo

    Thanks for this, it helped me a lot

  30. Andy Wagstaff

    I have an area of my site that requires log-in registration.
    I have made the admin bar “autohide” by requiring a plug-in, I don’t want to entirely disable it, as I need the abiity to change password, but is there any way of removing items from the bar for users? I don’t want the site name,WP logo or the theme extensions options on the left hand side.

    Is this possible? I am sure it is, but I can’t work it out!!

    Ta!! Really handy site by the way

    Andy

  31. Rajiv

    Hi,

    I want to disable BP Admin Bar for Logged Out Users.

    Please help.

  32. Ken Shoufer

    Hello,

    Your code worked fine when I tried it locally on my computer, but when I tried it on a fresh Wordpress install on my host server it would not let me log out. When I tried to log out, the address showing was “http://www.ken-shoufer.com/wordpress1/wp-login.php?action=logout&_wpnonce=9e7f51a307”.

    I’m not sure what is wrong.

  33. Nate

    i am trying to disable the W logo on the top left, the “My Sites” menu and the dashboard link on a buddypress multisite install. I want to keep the right side functional which shows the links to their buddypress profile settings. How can I achieve this?

  34. Tanner Moushey

    To avoid the blank space where the admin bar was, call the function in the “after_setup_theme” action instead of “init”.

    • Cristian O. Balan

      Really perfect, thanks a lot!

    • Will

      Thank you so much! This worked perfectly and resolved several hours of head-scratching.

  35. Cristian B.

    Really nice code. Are here also a fix to the blank bar that many here complains?

    • David

      Hi,
      To avoid the blank, just instead of :
      add_action(‘init’, ‘remove_admin_bar’);
      use:
      add_action(‘after_setup_theme’, ‘remove_admin_bar’);

      • Cristian O. Balan

        Thanks a lot man!

  36. niki

    Fantastic! Except I also have the blank space visible where the admin bar would be. Does anyone have a fix for this?

  37. Marlita Hill

    Hello. Thank you for this. How would I write the code if I only want the bar accessible to admin and contributors? I still do not want the contributors to have admin access to my backend.

  38. Steve

    Well… it removes the admin bar but it´s still occupying the space meaning there´s too much space up there now. I´m not sure it´s supposed to be that way? ;-)

  39. Adam

    worked …
    Thanks a lot

  40. Nick Cokas

    Add the code and worked perfect. However, the user still sees a white space above were the toolbar existed before. Any ideas to remove that.

    Thanks

  41. Toby Couchman

    Did you use a plugin to place all the necessary user stuff on the frontend?

    My team recently built a site with similar requirements and I’d love to compare the processes.

    Cheers
    Toby

    • Editorial Staff

      Agreed. Just updated the code to make it into a function, and then adding it in via action.

      Admin

  42. Sally

    Excellent post thanks so much!

    Took me under a minute and the bar was gone… forever… truly grateful.

    Sally :) x

  43. Corey Freeman

    Thanks to this I have one less plugin bloating my site. Woo!

  44. Delton Childs

    This is an awesome post. short, to the point and contained a useful snippet! Thank you so much!

    I’m using the S2Member plugin also, I was very concerned about compatibility issues with plugin based solutions because of the various s2Membership Levels. This solutions is working wonderfully for me.

    Thanks Again!

  45. James Davis

    Hi Guys,

    Just found this bit of code and it worked perfect for my site…

    Thanks so much

    Cheers

    James

    AKA The Fitness Blogger

  46. glueckpress

    Nice. For Superadmins in a Multisite install it would read like if(!current_user_can(‘manage_network’)) //etc.

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.