Question

I have the WP3.4 and I would like to disable the admin bar. I have tried to do that with many ways, but the admin bar do not display. Is possible to do on this version of WP (3.4) or i make a mistake in the code? Below are the ways that I've tried. Thanks in advance. The 1st :

function my_function_admin_bar(){
            return false;
        }
        add_filter( 'show_admin_bar' , 'my_function_admin_bar');

The 2nd :

add_action( 'init', 'disable_admin_bar', 1 );
function disable_admin_bar() {
    add_filter( 'show_admin_bar', '__return_false' );

The 3rd

    <?php
if (!function_exists('disableAdminBar')) {

    function disableAdminBar(){

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

    function remove_admin_bar_style_backend() {  // css override for the admin page
      echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
    }

    add_filter('admin_head','remove_admin_bar_style_backend');

    function remove_admin_bar_style_frontend() { // css override for the 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_filter('admin_head','remove_admin_bar_style_backend'); // Original version
add_action('init','disableAdminBar'); // New version


    ?>
Was it helpful?

Solution

You need to specify the order or number which signifies when the Hook gets fired. In this case I beleive it's 0 and the filter is: wp_admin_bar_render. The action to remove the function I believe is:

remove_action( 'in_admin_header', 'wp_admin_bar_render', 0);

The Function Reference:

Function Reference/remove action

And here it is in the core file:

WordPress Trac.

OTHER TIPS

The simple front-end removal is via show_admin_bar():

show_admin_bar( false );

This won't affect admin, because it is considered non-removable there (was not when first introduced, but later changed to that approach). is_admin_bar_showing() is hardcoded to always return true on admin side and there is no "proper" way to remove toolbar there. Which is not to say it can't be done, but that is probably shouldn't be done.

That's a fast and right solution, but does not deactivate all requirements. For example, the scripts and styles are still active and have its load time. A complete solution in a small plugin as follows:

<?php
/**
 * Plugin Name: Remove Admin Bar in WordPress 3.3
 * Plugin URI:  http://wordpress.stackexchange.com/questions/40983/removing-admin-bar-from-wordpress-dashboard
 * Description: Remove Admin Bar
 * Version: 1.0.0
 * Author:      Frank Bültge
 * Author URI:  http://bueltge.de
 * License:     GPLv3
 */

// This file is not called from WordPress. We don't like that.
! defined( 'ABSPATH' ) and exit;

add_action( 'init', 'fb_remove_admin_bar', 0 );
function fb_remove_admin_bar() {
    wp_deregister_script( 'admin-bar' );
    wp_deregister_style( 'admin-bar' );
    remove_action( 'init', '_wp_admin_bar_init' );
    remove_action( 'wp_footer', 'wp_admin_bar_render', 1000 );
    remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 );
    // maybe also: 'wp_head'
    foreach ( array( 'admin_head' ) as $hook ) {
        add_action(
            $hook,
            create_function(
                '',
                "echo '<style>body.admin-bar #wpcontent, body.admin-bar
#adminmenu { padding-top: 0px !important; }</style>';"
            )
        );
    }
}

also as gist for download and forks.

I find the solution. functions.php :

require_once('includes/admin/remove_admin_bar.php');

and the php file :

    <?php
        remove_action( 'in_admin_header', 'wp_admin_bar_render', 0);
        echo '<style>body.admin-bar #wpwrap
{padding-top: 0px !important; position:absolute; top: 0px;} </style>';  
    ?> 

if the current user is not an admin or do not have administrative access

yourCHILDtheme/functions.php

if ( ! current_user_can( 'manage_options' ) ) {
  add_filter('show_admin_bar', '__return_false');
}

Tested: WordPress 5+

Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top