web-dev-qa-db-fra.com

Désactiver la barre d'administration

J'ai le WP3.4 et je voudrais désactiver la barre d'administration. J'ai essayé de le faire de plusieurs façons, mais la barre d'administration ne s'affiche pas. Est-il possible de faire sur cette version de WP (3.4) ou je fais une erreur dans le code? Voici les moyens que j'ai essayés. Merci d'avance. Le 1er :

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

Le 2ème :

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

Le 3ème

    <?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


    ?>
2
user24259

Vous devez spécifier l'ordre ou le numéro indiquant le moment où le crochet est déclenché. Dans ce cas, je crois que c'est 0 et que le filtre est: wp_admin_bar_render. L'action pour supprimer la fonction je crois est:

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

La référence de la fonction:

Référence de la fonction/remove action

Et le voici dans le fichier core:

WordPress Trac.

4
Jeremy Jared

C'est une solution rapide et appropriée, mais ne désactive pas toutes les exigences. Par exemple, les scripts et les styles sont toujours actifs et ont leur temps de chargement. Une solution complète dans un petit plugin comme suit:

<?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>';"
            )
        );
    }
}

aussi comme Gist pour le téléchargement et les fourchettes.

2
bueltge

Le retrait simple de l’avant se fait par le biais de show_admin_bar() :

show_admin_bar( false );

Cela n’affectera pas l’administrateur, car il est considéré comme non amovible (ce n’était pas le cas lors de sa première introduction, mais plus tard modifié pour cette approche). is_admin_bar_showing() est codé en dur pour toujours renvoyer true du côté de l’administrateur et il n’existe pas de méthode "correcte" pour supprimer la barre d’outils. Ce qui ne veut pas direne peut pasêtre fait, mais c'est probablementne devrait pasêtre fait.

2
Rarst

Je trouve la solution. functions.php:

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

et le fichier php:

    <?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>';  
    ?> 
0
user24259