web-dev-qa-db-fra.com

Feuilles de style en file d'attente si le thème parent contient plusieurs fichiers .css

Je viens d'apprendre sur la création de thèmes enfants auprès de le Codex , il est dit d'ajouter

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

}

et

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

dans le fichier functions.php de mon thème enfant, mais cela ne réglait pas le problème lorsque notre thème parent comportait plus d'une feuille de style (.css files). (Dans mon cas, le thème vingt-quatorze a deux style.css et rtl.css) et deux autres dans le dossier/css nommé editor-style.css et ie.css Donc, ce que je dois changer dans le code ci-dessus pour charger les deux stylesheets.

J'ai traversé cette question mais cela ne réglait pas mon problème.

2
Chaudhry Waqas

Vingt-quatorze charge ses feuilles de style différemment en ce sens que la feuille de style principale est dépendante de la feuille de style genericon et je suis sûr que c'est le problème que vous rencontrez. (sinon, veuillez mettre à jour votre question avec les détails appropriés} _)

Vous pouvez changer la façon dont vous mettez votre style en file d'attente dans le premier bloc de code comme suit

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

MODIFIER

Vous avez un malentendu sur la façon dont certaines feuilles de style sont chargées. Le thème enfant charge toutes les feuilles de style à partir du parent, à l'exception de la feuille de style parent. C'est comme ça que le système a été construit. Maintenant, il y a des feuilles de style qui ne sont pas chargées par le thème, mais par Wordpress par défaut

  • editor-style.css get chargé automatiquement dans l'éditeur TinyMCE. S'il vous plaît voir le codex pour une explication complète

  • rtl.css n'est chargé que lorsque le site Web est défini sur une langue RTL. Sur les langues ltr comme l'anglais, la feuille de style n'est pas chargée. Ceci est également fait par défaut par Wordpress. Juste une note, pourquoi voudriez-vous charger votre feuille de style RTL sur un site LTR. C'est un gaspillage de ressources pour un

  • ie.css La feuille de style, par exemple, n'est chargée que lorsque le navigateur actuel est IE8 ou une version antérieure. C'est tout le but de la feuille de style. IE8 et les versions antérieures ne prennent pas en charge les requêtes multimédia. Par conséquent, d'autres styles doivent être chargés sur ce navigateur.

Le code only dont vous avez besoin dans votre enfant functions.php est le suivant

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