Formation WordPress

Mettre la barre d’administration WordPress visible uniquement pour les admins

Introduit dans WordPress 3.3, la barre d’administration est une nouvelle version de la très controversée « Toolbar » qui avait été implantée dans WordPress 3.0.

Si vous pensez que cette fonctionnalité est inutile sauf pour les administrateurs de votre site, cette astuce va vous permettre de restreindre la visibilité de la barre d’administration aux administrateurs de votre site.

Copier le code ci-dessous dans le fichier functions.php présent à la racine de votre thème :

if (!current_user_can('manage_options')) {

	remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 );
	remove_action('wp_footer', 'wp_admin_bar_render', 1000);

	function remove_admin_bar_style() {
  		echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
  	}
	add_filter('admin_head','remove_admin_bar_style');

        function remove_admin_bar_style_frontend() {
  	        echo '<style>html{ padding-top: 0px !important; }</style>';
        }
        add_filter('wp_head','remove_admin_bar_style_frontend');
}
Tags :
Auteur : Jonathan
Actuellement en Master 1 Information Communication à Ingémédia, je m’intéresse depuis quelques années à différents aspects du milieu informatique qui m’ont vraiment séduits tels que la gestion de projet et la création de sites Internet.
Avatar de jonathan
Les commentaires 12 commentaires sur cet article
  1. Dupré David le

    Je me demande pourquoi nous n’avons pas la possibilité de choisir l’affichage de cette barre en standard dans le BO WordPress. En effet, lorsque l’on fait un site e-commerce (avec Jigoshop par exemple), lorsque l’internaute devient client, il possède de ce fait un compte et peut potentiellement accéder au backoffice via la barre, bof…

    Merci je vais mettre en œuvre ton code très rapidement :)

    Avatar de
  2. jonathan le

    @DUPRÉ DAVID : En effet, je suis d’accord avec toi. C’est une option qui devrait être proposer dans les réglages.

    En espérant que cela soit possible nativement dans une prochaine version de WordPress.

    Avatar de
  3. geobiologie le

    très pratique à l’usage…

    Merci

    Avatar de
  4. marcelus le

    bonsoir, je ne comprends pas ça ne l’enlève pas a mes abonnés et en plus ces mêmes abonnés ont accès à mes fichier multimédias. quelqu’un a déjà eus le même souci??
    merci

    Avatar de
  5. jonathan le

    @MARCELUS : Je viens de re-tester le code et ça fonctionne !

    L’avez-vous bien ajouté dans le fichier functions.php présent à la racine de votre thème ?.

    Avatar de
  6. marcelus le

    oui oui j’utilise souvent ce fichier functions.php, c’est vraiment bizarre j’ai désactivé buddypress et les autres extensiosn rien y fait

    Avatar de
  7. marcelus le

    ce code marche par contre

    add_filter( 'show_admin_bar' , 'my_admin_bar') ;
     return false
    function my_admin_bar(){
      $cc_user = wp_get_current_user();
      if (empty($cc_user->roles) || in_array('subscriber', $cc_user->roles)) {
        return false;
      }
      return true;
    }
    
    Avatar de
  8. jonathan le

    @MARCELUS : En fait, l’astuce était dédié uniquement à la désactivation de l’admin bar du côté administration.

    J’avoue que j’aurai dû le préciser. Du coup, j’ai mis à jour le code pour pouvoir aussi supprimer l’admin bar du côté front-office.

    Cela évitera toute confusion :)

    Avatar de
  9. marcelus le

    a ok impec. par contre savez vous comment retirer l’acces aux medias de mes abonnés??
    merci

    Avatar de
  10. Vince le

    Bonjour et merci pour cette astuce. Elle a fonctionné mais j’ai quand même eu une petite frayeur.
    En mettant à jour mon functions.php une page blanche est apparue.
    Heureusement après un refresh aucun bug n’est à déclarer.

    Cordialement

    Avatar de
  11. Vince le

    Bon et bien à priori ce bug n’est pas anodin puisque je retrouve cette page blanche à chaque fois que je créé un article ou le modifie, dès qu’un commentaire est posté, etc.

    J’ai fait ta manip’ sur deux sites utilisant le même thème et les mêmes widgets sauf qu’un seul des deux me renvoie cette erreur…
    Une idée d’où cela peut venir ?

    Cordialement

    Avatar de
  12. Rémy le

    Pour le front il existe une fonction simple : show_admin_bar(false);

    Avatar de
Laisser un commentaire
Balises autorisées dans les commentaires: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Suivre les commentaires de cet article par E-mail