なぜstyle.cssがエンキューされないのですか?


10

かなり基本的なテーマを取得しましたが、style.cssファイルがに読み込まれていません<head>。私はすでに周りを検索しましたが、なぜそれが読み込まれないのかわかりません。

私はglobal $wp_stylesすでにオブジェクトを検査しましたが、何も見つかりませんでした:

function style_test() 
{ 
    $wp_styles = new WP_Styles();

    echo '<pre>'; 
        // $wp_styles->enqueue == completely empty
        print_r( $wp_styles->registered ); 
    echo '</pre>'; 
} 
add_action( 'wp_print_scripts', 'style_test', 0 );

オブジェクト内では、登録済み/エンキューされたスタイルシート(それらが読み込まれる)も見つけることができないので、これを検査する際に何か問題があると思います。何か案は?

注:
手動でキューに入れると、style.cssファイルが読み込まれます。自動ロードだけでは機能しません。さらに私はget_theme_data( TEMPLATEPATH.'/style.css' );問題なくファイルにアクセスできます。

回答:


18

テーマのスタイルシートは通常はキューに入れられず、通常は読み込まれます。

<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />

したがって、当然のことながら、styles配列にそれらは表示されません。

もちろん、(必要に応じて)代わりにエンキューを使用することもできます。


6
プライマリスタイルシートstyle.cssは、他のスタイルシートと同様に、ドキュメントヘッドにハードコードするか、またはに手動でフックするwp_head必要がありwp_print_stylesます。WordPressは自動的にstyle.cssをフックしません。
チップベネット、

2
私は(今まで)style.cssの読み込みが自動的に行われると思っていました...明確化してくれてありがとう!+1両方。
カイザー

2

推奨それを行う方法は、テーマのfunctions.phpの中にエンキュー-style.cssにINGのです。

これをfunctions.phpに追加します

 /**
 * Load CSS and JS the right way
 */
function myprefix_load_css_and_js() {
    wp_enqueue_style( 'style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'myprefix_load_css_and_js' );

こちらのWordPressテーマハンドブックこれを参照し、ここで例を確認できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.