web-dev-qa-db-ja.com

親テーマに複数の.cssファイルがある場合、スタイルシートをキューに入れる

Codex から子テーマを作成することを学びました。

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}

そして

function theme_enqueue_styles() {

    $parent_style = 'parent-style';

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style )
    );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); 

子テーマのfunctions.phpファイルで、親テーマに複数のスタイルシート(.css files)がある場合の問題は解決しませんでした。 (私の場合、24のテーマには2つのstyle.cssrtl.cssがあり、さらに2つのeditor-style.cssie.cssという名前の/ cssフォルダーにあります。上記の両方のstylesheetsをロードします。

この質問 は完了しましたが、私の問題は解決しませんでした。

2
Chaudhry Waqas

メインのスタイルシートをgenericonのスタイルシートに依存させるという点で、14のスタイルシートのロード方法が異なります。これが問題であることは間違いありません。 (そうでない場合は、適切な詳細で質問を更新してください

次のように、コードの最初のブロックでスタイルのエンキュー方法を変更できます。

wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css', array( 'genericons' ) );

編集

特定のスタイルシートがどのように読み込まれるかについて、あなたは誤解しています。子テーマは、親スタイルシートを除くすべてのスタイルシートを親からロードします。これがシステムの構築方法です。現在、テーマによってではなく、デフォルトでWordpressによって読み込まれるスタイルシートがあります。

  • editor-style.css TinyMCEエディタに自動的にロードされます。詳しい説明はコーデックスを見てください。

  • rtl.cssは、Webサイトがrtl言語に設定されている場合にのみロードされます。英語のようなltr言語では、スタイルシートはロードされません。これはWordpressでもデフォルトで行われています。ちょっと注意してください、なぜあなたはltrサイトにあなたのrtlスタイルシートをロードしたいでしょうか。それは一つのための資源の無駄です

  • ie.css ieスタイルシートは、現在のブラウザがIE 8以前の場合にのみロードされます。それがすなわちスタイルシートの全体の目的です。 IE 8以前はメディアクエリをサポートしていないため、他のスタイルをそのブラウザに読み込む必要があります。

あなたの子関数に必要な only コードは以下の通りです。

function theme_enqueue_styles() {

    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css', array( 'genericons' ) );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( 'parent-style' )
    );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); 
2
Pieter Goosen