为什么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' );毫无问题地访问文件。

Answers:


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
Chip Bennett

2
我(直到现在)以为神奇地发生了加载style.css的问题……感谢您的澄清!都+1。
kaiser

2

建议的方式来做到这一点是通过在主题的functions.php排队-ING的style.css。

将此添加到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主题手册是指这这里,看到的例子在这里

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.