Comment supprimer la barre d'administration (style) du frontend uniquement?

10

Une fois connecté, la barre d'administration ajoute ce qui suit à ma <head>section de page :

<style media="screen" type="text/css">
    html { margin-top: 28px !important; }
    * html body { margin-top: 28px !important; }
</style>

Maintenant, je peux supprimer cela en désactivant la barre d'administration

/* Disable the Admin Bar. */
add_filter( 'show_admin_bar', '__return_false' );

ou l'enlever complètement

/* Remove admin bar */
remove_action('init', 'wp_admin_bar_init');

Je voudrais garder la barre d'administration dans l'interface d'administration et ne supprimer que le CSS du front-end.

J'utilise déjà la réinitialisation CSS là où je l'ai définie margin: 0px, mais le style de la barre d'administration l'emporte.

Alors, comment puis-je retirer le style de l'extrémité avant?

PS. Je sais que je peux désactiver la barre d'administration par utilisateur, mais ce n'est pas ce que je veux.

Steven
la source

Réponses:

21
function hide_admin_bar_from_front_end(){
  if (is_blog_admin()) {
    return true;
  }
  return false;
}
add_filter( 'show_admin_bar', 'hide_admin_bar_from_front_end' );

Éditer:

Comme @Walf l'a suggéré dans les commentaires, cela pourrait être écrit comme suit:

add_filter('show_admin_bar', 'is_blog_admin');
Maxim Krizhanovsky
la source
1
Ah :) Je testais l'admin quand j'ai essayé quelque chose de similaire. Oublié le is_blog_admin. Merci :)
Steven
dans quel fichier cela va-t-il ... Je suis assez nouveau sur WP ...
@HiroProtagonist il peut être défini dans n'importe quel plugin ou dans functions.php de votre thème.
Maxim Krizhanovsky du
2
Vous pouvez le raccourcir un peu:add_filter( 'show_admin_bar', function (){ return is_blog_admin() });
MiCc83
1
Vous pouvez le raccourcir beaucoup : add_filter('show_admin_bar', 'is_blog_admin');j'ai suggéré la modification mais elle a été rejetée. Je suppose que les deux critiques de haut niveau l'ont vu comme trop de changements sans se rendre compte que c'est exactement la même chose.
Walf
5

Si vous souhaitez supprimer la barre d'administration (barre d'outils) ET le CSS bump de votre page, utilisez ceci:

function wpse_99333_hide_admin_bar_from_front_end(){
  if ( is_blog_admin() ) {
    return true;
  }
  remove_action( 'wp_head', '_admin_bar_bump_cb' );
  return false;
}
add_filter( 'show_admin_bar', 'wpse_99333_hide_admin_bar_from_front_end' );

La _admin_bar_bump_cbfonction est celle qui insère le CSS (situé dans wp-includes / admin-bar.php)

jjeaton
la source
1

Je ferais quelque chose comme ça:

Supprimer la barre d'administration / CSS dans la classe head / body

show_admin_bar(false);

ou si vous voulez simplement: supprimer le htmlCSS de marge supérieure dans<head>

function remove_admin_bar_bump() {
   remove_action('wp_head', '_admin_bar_bump_cb');
}
add_action('get_header', 'remove_admin_bar_bump');

Testé: version 4.7.3

l2aelba
la source
0

J'ai récemment dû le faire, je voulais juste que les styles CSS en ligne par défaut de wordpress (pour la barre d'administration) soient supprimés, mais je voulais que la barre d'administration reste. J'affichais la barre d'administration en bas de la page, pas en haut.

Voici ce qui s'est débarrassé de l'injection des styles de la fonction _admin_bar_bump_cb pour moi. J'ai ajouté ce qui suit à mes fonctions.php

// remove wordpress trying to style the admin bar with inline css
function hide_admin_bar_from_front_end(){
  remove_action( 'wp_head', '_admin_bar_bump_cb' );
  return true;
}
add_filter( 'show_admin_bar', 'hide_admin_bar_from_front_end' );
andxyz
la source