web-dev-qa-db-fra.com

Pourquoi style.css n'est-il pas mis en file d'attente?

J'ai un thème assez basique et je viens de découvrir que mon fichier style.css n'est pas chargé dans le <head>. J'ai déjà cherché, mais je ne peux pas savoir pourquoi il ne se charge pas.

J'ai déjà inspecté l'objet global $wp_styles mais je n'ai rien trouvé:

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 );

À l'intérieur de l'objet, je ne trouve pas non plus mes feuilles de style enregistrées/mises en file d'attente (elles sont chargées), donc je suppose que je fais quelque chose de mal en inspectant cela aussi. Des idées?

Remarque:
Si je le met en file d'attente manuellement, mon fichier style.css est chargé. Le chargement automatique ne fonctionne pas. De plus, je peux accéder au fichier avec get_theme_data( TEMPLATEPATH.'/style.css' ); sans problème.

10
kaiser

Les feuilles de style de thème ne sont généralement pas mises en file d'attente, elles sont normalement chargées à l'aide de ..

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

Alors naturellement, vous ne les voyez pas dans le tableau de styles.

Vous pouvez bien sûr (si vous préférez) utiliser une mise en file d'attente.

18
t31os

La manière recommandée de le faire est en mettant en file d'attente style.css dans le functions.php du thème.

Ajoutez ceci à 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' );

Vous pouvez vous référer à cela dans le manuel du thème WordPress ici et voir des exemples ici .

2
Arun Basil Lal