web-dev-qa-db-ja.com

wp_head()は私に奇妙なCSSをくれ

スタイルシートをエンキューしようとしましたが、うまくいきませんでした。 <head>タグの中にwp_head()を含めるのを忘れていました。だから私はやったそしてそれから私のスタイルシートどこでロードがうまくいった。

問題は、私のスタイルシートからではないCSS値を取得することです。それは私の後にロードされているように見えるので、私はまた私のスタイルシートからそれをオーバーライドすることはできません。 wp_head()を含めるとすぐに登場し始めました。 wp_head()を削除すれば、すべて問題ないようです。

これは私が得る奇妙なCSS値です:

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

私が私のウェブサイトの上に32pxのマージンを持っているのを知っているのであなたが理解できるようにこれは問題です。そして私が前に述べたように、私はこの価値がどこから来るのかわかりません。私はプラグインを使用せず、キューに入れられた唯一のスタイルシートは私のstyle.cssであり、この値はそのファイルからのものではありません。 "コンソール"でそれは値が334行目の "インデックス"から来ることを言っています。しかし、私はそこに何も得なかったので、それはWPからのものでなければなりません?

誰が私にこの価値がどこから来るのか説明できますか?そしてそれをどうやって変えるのですか?

5
Alex

事実

<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によって管理バーに追加されます。

以下のトリックはそれらのCSSをyout HTML出力から削除しますあなたのfunctions.phpにこのコードを追加するだけです

add_action('get_header', 'my_filter_head');

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

_ update _

質問スターターの要求に答えます。

1) ログインしている場合、管理バーはデフォルトで表示されます。ラッパーのラッパーにはid="wpadminbar"があります。

また、/wp-includes/js/admin-bar.min.jsスクリプトをエンキューし、ページ下部に「Support Script」を追加します。

2) [ユーザー] - > [User_Record] - > [サイトの閲覧時にツールバーを表示]チェックボックスで、特定のユーザーのサイトを閲覧しているときに管理バーを無効にすることができます。

さらにそれはあなたのfunctions.phpで無効にすることができます(ここで説明されているように show_admin_bar フィルタを使う フロントエンドだけから管理バー(スタイル)を削除するにはどうすればいいですか?

3) In 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を削除することでそれらのスタイル印刷をキャンセルする

8
Ignat B.