Wp_head()给了我一些奇怪的css

时间:2015-09-01 作者:Alex

我试图将我的样式表排队,但没有成功。结果我忘了包括wp_head() 在我的内部<head> 标签所以我做了,然后我的样式表加载很好。

问题是a获取的CSS值不是来自我的样式表。我也不能从样式表中重写它,因为它似乎是在我的样式表之后加载的。当我把它包括进来的时候,它就开始出现了wp_head(). 如果我删除wp_head() 一切看起来都很好。

这是我得到的奇怪的CSS值:

media="screen" 
html {
    margin-top: 32px !important;
}
你可以理解,这是一个问题,因为我知道我的网站上有一个32像素的利润率。正如我之前所说的,我不知道这个值来自哪里。我没有使用插件,唯一排队的样式表是style.css 并且该值不是来自该文件。在“控制台”中,它表示值来自第334行的“索引”。但我在那里什么都没有,所以一定是WP的东西?

谁能向我解释一下这个值是从哪里来的吗?我该如何改变它?

1 个回复
最合适的回答,由SO网友:Ignat B. 整理而成

事实是

<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>
是由wp core在站点顶部为管理栏添加的。

下面的技巧将从HTML输出中删除这些CSS,只需将此代码添加到functions.php

add_action(\'get_header\', \'my_filter_head\');

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

UPDATE

回答问题启动器请求。

1) 如果您登录,默认情况下会显示管理栏。It包装器具有id="wpadminbar" 在HTML响应中。

它还排队/wp-includes/js/admin-bar.min.js 编写脚本并在页面底部添加“支持脚本”。

2) 当您在“用户->用户记录->查看站点时显示工具栏”复选框中查看指定用户的站点时,可以禁用管理栏。

此外,您还可以在functions.php (使用show_admin_bar 此处描述的过滤器How do I remove the admin bar (styling) from frontend only?)

3) 在WP源代码中_admin_bar_bump_cb() 看起来像这样。可在以下网址找到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
}
此函数用于作为操作添加到wp_head 在…内wp-includes/class-wp-admin-bar.php 以这种方式:

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

   add_action(\'wp_head\', $header_callback);
通过删除_admin_bar_bump_cb 从操作队列中取消这些样式的打印