web-dev-qa-db-fra.com

wp_head () me donne des CSS étranges

J'essayais de mettre en file d'attente mes feuilles de style mais cela ne fonctionnait pas. Il s'avère que j'avais oublié d'inclure wp_head() dans mon tag <head>. Donc je l'ai fait et ensuite mes feuilles de style ont été bien chargées.

Le problème est qu’il faut obtenir une valeur CSS qui ne provient pas de ma feuille de style. Et je ne peux pas non plus le remplacer de ma feuille de style car il semble se charger après le mien. Il a commencé à apparaître dès que j'ai inclus wp_head(). Si je supprime wp_head() tout va bien.

Voici la valeur CSS étrange que je reçois:

media="screen" 
html {
    margin-top: 32px !important;
}

Comme vous pouvez le comprendre, c’est un problème, étant donné que je connais une marge de 32 pixels au-dessus de mes sites Web. Et comme je l’ai dit précédemment, je n’ai aucune idée de la provenance de cette valeur. Je n'utilise aucun plugin et la seule feuille de style mise en file d'attente est mon style.css et cette valeur ne provient pas de ce fichier. Dans la "console", il est indiqué que la valeur provient de "index" à la ligne 334. Mais je n'ai rien, donc ce doit être quelque chose de WP?

Quelqu'un peut-il m'expliquer d'où provient cette valeur? Et comment puis-je le changer?

5
Alex

Le fait que

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

est ajouté pour la barre d’administration par wp-core en haut du site.

L'astuce ci-dessous va supprimer ces CSS de votre sortie HTML. Ajoutez simplement ce code à votre functions.php

add_action('get_header', 'my_filter_head');

function my_filter_head() {
   remove_action('wp_head', '_admin_bar_bump_cb');
} 

UPDATE

Répondre à la demande de starter.

1) La barre d'administration s'affiche par défaut si vous êtes connecté. Son wrapper a id="wpadminbar" dans votre réponse HTML.

Il a également mis en file d'attente le script /wp-includes/js/admin-bar.min.js et ajouté "Support Script" au bas de la page.

2) La barre d'administration peut être désactivée lorsque vous affichez le site pour les utilisateurs spécifiés dans la case Utilisateurs -> User_Record -> "Afficher la barre d'outils lors de la visualisation du site".

En outre, il peut être désactivé dans votre functions.php (à l’aide de show_admin_bar filtrer comme décrit ici Comment puis-je supprimer la barre d’administrateur (style) du frontal uniquement? )

3) Dans WP le code source _admin_bar_bump_cb() ressemble à ceci. Vous pouvez le trouver à wp-includes/admin-bar.php

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

Cette fonction est utilisée pour être ajoutée comme action à wp_head à l'intérieur de wp-includes/class-wp-admin-bar.php de cette manière:

if ( empty($header_callback) )
   $header_callback = '_admin_bar_bump_cb';

   add_action('wp_head', $header_callback);

En supprimant _admin_bar_bump_cb de la file d'attente d'actions, vous annulez l'impression de ces styles.

8
Ignat B.