2017-07-27 15 views
1

私はWordPressの開発者には新しく、単純な子テーマを作成しようとしています。 狂った親テーマでエンキューされたブートストラップスタイルをオーバーライドするよう子スタイルを取得しようとしています。私がオンラインに見てきたWordpressの子テーマスタイルは、以前にエンキューされたスタイルをオーバーライドしません。

すべてはあなたの子供のテーマが最後にエンキューされていることを確認する必要があり、この問題を解決することを言います、と私は私が達成したと信じている私の子供ののfunctions.phpで:

<?php 

    // enqueue styles 
    function sparkling_enqueue_styles() { 

     // enqueue parent styles 
     wp_enqueue_style('sparkling-theme', get_template_directory_uri() .'/style.css'); 

     // enqueue child styles 
     wp_enqueue_style('child-theme', get_stylesheet_directory_uri() .'/style.css', array('sparkling-theme', 'sparkling-bootstrap'), '1.0', true); 
    } 

    add_action('wp_enqueue_scripts', 'sparkling_enqueue_styles'); 

これは私のdevのツールで検査要素の次の順序でヘッド部を与える:

<link rel="stylesheet" id="sparkling-theme-css" 
href="http://localhost/wordpress/wp-content/themes/sparkling/style.css? 
ver=4.8" type="text/css" media="all"> 

<link rel="stylesheet" id="sparkling-bootstrap-css" 
href="http://localhost/wordpress/wp- 
content/themes/sparkling/inc/css/bootstrap.min.css?ver=4.8" type="text/css" 
media="all"> 

<link rel="stylesheet" id="child-theme-css" 
href="http://localhost/wordpress/wp-content/themes/sparkling- 
child/style.css?ver=1.0" type="text/css" media="1"> 

<link rel="stylesheet" id="sparkling-style-css" 
href="http://localhost/wordpress/wp-content/themes/sparkling- 
child/style.css?ver=4.8" type="text/css" media="all"> 

私は私の子供のテーマのスタイルシートにCSSのこのビットを追加しました:

@media (min-width: 768px) { 
    .navbar-header { 
     float: right !important; 
    } 
} 

しかし、私は私の.navbar・ヘッダ要素を検査するために行くとき、それはまだ、左にスタイルをブートストラップのおかげで浮いています:

bootstrap.min.css?ver=4.8:5 

@media (min-width: 768px) { 
    .navbar-header { 
     float: left; 
} 

は、私は2つの質問があります。彼らが関係しているかどうかはわかりません。

  1. なぜ私の子供のテーマスタイリングがブートストラップスタイルを上書きしないのですか?
  2. 最終的なスタイルシート(sparkling-style-css)はどこから来ていますか?私はそれが私のfunctions.phpファイルから削除されて以来、エンキュー時の以前の試みの影だと思う。

ご協力いただきありがとうございます。私は、ブートストラップファイルを再エンキューすることをデキューしようとしましたが、それは助けにはならないと思われ、デザインの他の部分をジャックアップします。

+0

可能であればheader.phpファイルコードとウェブサイトへのライブリンクを投稿できますか? – pomaaa

+0

2番目のスタイルシートについては、WordPressが 'sparkling-style'という名前のstyle.cssを自動的にインクルードするためです。あなたは 'child-theme'を使ってそれを上書きしません。それを 'sparkling-style'としてエンキューしようとするとOKです。 – Aioros

+0

ちょっと@pomaaa、私は私のエラーを発見したので、質問を更新しました。お問い合わせいただきありがとうございます。 – katcalavera

答えて

0

エンキューコードとPHPを調査して掘り下げた後、私がエンキューしようとしていた子スタイルシートに問題があったことが判明しました。閉じる括弧はCSSのどこかで削除されていますファイルがエンキューされないようにしたり、スタイルが適用されないようにしたりしていました。

// dequeue ghost duplicate child styles 
function remove_assets() { 
    wp_dequeue_style('sparkling-style'); 
    wp_deregister_style('sparkling-style'); 
} 

add_action('wp_print_styles', 'remove_assets', 99999); 
:最後の(存在しない)スタイルシートがヘッダーに表示されてた理由

が、私はまだわからないんだけど、それがデキューされることに抵抗性であったので、私はSOに他の誰かが推奨する以下のコードを適用しました

これが頑固な資産をデキューする最もエレガントな方法であるかどうかはわかりませんが、うまくいくようです。

関連する問題