web-dev-qa-db-fra.com

Masquer la barre d’administration frontale avec un espacement de 32 px

J'ai un modèle personnalisé et j'ai inséré l'extrait suivant pour supprimer la barre d'administration de la page:

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

Le problème est que cela laisse toujours une barre vide blanche vide en haut de la page avec une hauteur de 32px. En regardant au cœur, je vois cette fonction mais il n’ya aucun moyen de la désactiver. J'ai aussi essayé de surcharger html { margin-top: 0 !important; } dans ma feuille de style de thème en vain, car cela est directement affiché sur la page.

function _admin_bar_bump_cb() { ?>
<style type="text/css" media="screen">
    html { margin-top: 32px !important; }
    * html body { margin-top: 32px !important; }
    @media screen and ( max-width: 782px ) {
        html { margin-top: 46px !important; }
        * html body { margin-top: 46px !important; }
    }
</style>

Quelqu'un a-t-il un moyen propre de supprimer complètement la barre d'administration située en haut d'une page de modèle spécifique (plus l'espace blanc)?

3
Adam

Vous pouvez définir le statut d'affichage avec Fonction show_admin_bar

<?php show_admin_bar( false ); ?>
3
rafawhs

La réponse d'Amit Mishra résout mon problème, j'ai mis mes codes dans le ci-dessous, merci beaucoup

L'administrateur peut voir la barre, l'autre utilisateur ne peut pas.

Cette solution ne laissera pas de bande vierge de 32 pixels de haut. D'autres réponses qui ne suppriment que _admin_bar_bump_cb laisseront une bande vierge laide sur le dessus

add_action('after_setup_theme', 'remove_admin_bar_user');
function remove_admin_bar_user() {
    if (current_user_can('administrator') || is_admin() ) {
        show_admin_bar(true);
    }else{
        show_admin_bar(false);
    }
}
1
zqcolor

C’est un peu hackish, mais j’ai trouvé l’ajout de l’extrait de code ci-dessous, exactement comme le noyau WordPress l’avait fait. Je déteste les styles inline mais la vie ne produit pas toujours de la limonade: -S

/**
 * Hides the admin bar on a template page.
 */
function hide_admin_bar() {
    wp_add_inline_style('admin-bar', '<style> html { margin-top: 0 !important; } </style>');
    return false;
}
add_filter( 'show_admin_bar', 'hide_admin_bar' );
0
Adam

Ajoutez ceci à votre fonction.php cela cache la barre d'administration de frontEnd

add_action('after_setup_theme', 'remove_admin_bar_user');

function remove_admin_bar_user() {
                if (current_user_can('administrator') || is_admin() ) {
                  show_admin_bar(false);
                }
            }
0
Amit Mishra