WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I don't want users to be able to choose to display the admin bar/toolbar when they log into wordpress. It doesn't have a function for those users.

Instead I would like for admin users to have the toolbar shown by default and anyone else to have the toolbar hidden by default.

I can do this with a plugin by using css and all sorts to hide the toolbar and the option in the profile, however I was wondering if there was a "proper" way to do this at all?


share|improve this question

To set the default to not show the admin bar on the public side at registration put the following in your theme's functions.php file (note: this will only work for new users, you'll have to manually disable it for all your current users via the Dashboard):

// Disable the user admin bar on public side on registration
function trash_public_admin_bar($user_ID) {
    update_user_meta( $user_ID, 'show_admin_bar_front', 'false' );
share|improve this answer

Using the answer by @Matth_eu, you can enable/disable the actual admin bar but to hide the option within the user-edit.php and profile.php screens, use this:

 //Removes the 'Show Toolbar' option.
  function as_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<tr class="show-admin-bar">.+?/tr>#s', '', $subject, 1 );
    return $subject;

  function as_profile_subject_start() {
    ob_start( 'as_remove_personal_options' );

  function as_profile_subject_end() {
add_action( 'admin_head-profile.php', 'as_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'as_profile_subject_end' );

add_action( 'admin_head-user-edit.php', 'as_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'as_profile_subject_end' );
share|improve this answer

Try this - change manage_options to whichever capability you want.

This will show the admin bar only for administrators.

function remove_admin_bar() {

    if( current_user_can( 'manage_options' ) )
        return true;

    return false;

add_filter( 'show_admin_bar' , 'remove_admin_bar' );
share|improve this answer
Forgot to say - you should add this to your functions.php file – Matth_eu Feb 22 '12 at 11:13

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.