Je viens de créer un thème enfant, mais chaque modification apportée dans style.css n'écrase pas le style.css parent. Les autres fichiers fonctionnent. Je viens de le faire comme ça:
Et maintenant, lorsque je change des éléments dans child style.css, la page s’occupe toujours de la modification. Pourquoi?
Il est à noter que la feuille de style enfant charge après les styles du thème parent, ce qui ne devrait donc pas poser de problème. Je pense que ce qui se passe ici, c'est que vous essayez de modifier des styles qui ne se trouvent pas dans la feuille de style parent, mais dans d'autres feuilles de style personnalisées. Si tel est le cas, vos modifications ne fonctionneront pas, car la feuille de style de votre thème enfant se charge probablement avant les feuilles de style personnalisées du thème parent.
Il convient également de noter que @import
ne doit pas être utilisé pour importer la feuille de style parent. La bonne façon est de le mettre en file d'attente en utilisant wp_enqueue_style()
accroché à wp_enqueue_scripts
Voici comment vous mettez correctement en file d'attente et ajoutez la feuille de style parent à l'enfant.
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}
A partir du codex, voici comment votre feuille de style devrait ressembler
/*
Theme Name: Twenty Fourteen Child
Theme URI: http://example.com/twenty-fourteen-child/
Description: Twenty Fourteen Child Theme
Author: John Doe
Author URI: http://example.com
Template: twentyfourteen
Version: 1.0.0
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twenty-fourteen-child
*/
/* =Theme customization starts here
-------------------------------------------------------------- */
J'ai mis à jour le codex avec cette information dans ce post
EDIT
À partir d'un commentaire ci-dessous
Si le thème parent n'utilise pas wp_enqueue_style (), comment peut-on enque style.css du thème parent sans manipuler les modèles du thème parent? Ce point n'est pas clair dans le Codex que vous avez mis à jour. Pouvez-vous clarifier avec un exemple?.
Je veux commencer par ceci, si vous êtes un auteur de thème, s'il vous plaît,NEVERajoutez des feuilles de style ou des scripts via des balises <link>
dans l'en-tête de votre thème. C'est la mauvaise façon de le faire. Mettez correctement en file d'attente et enregistrez ces styles et scripts via le hook wp_enqueue_scripts
, comme décrit dans le Codex.
Pour être honnête, je n'ai jamais réalisé qu'il y avait encore des auteurs de thèmes qui le font. Je pense que le meilleur moyen probable de résoudre ce problème consiste à copier le header.php parent dans votre thème enfant et à supprimer (supprimer) manuellement les styles et les scripts de l'en-tête.
Vous pouvez ensuite procéder à la mise en file d'attente et les enregistrer comme d'habitude en utilisant wp_enqueue_scripts
comme dans l'exemple ci-dessus. Rappelez-vous simplement, utilisez get_template
directory_uri () `pour interroger et enregistrer les scripts et les styles du thème parent, et rappelez-vous que l'ordre dans lequel vous chargez les styles et les scripts est important. Si un script/style dépend d’un autre, chargez-le after ce script/style spécifique
J'ai trouvé ce fil en lisant le chapitre sur le thème des enfants dans WordPress Codex.
J'ai construit un thème enfant basé sur Simone (qui est, à son tour, basé sur _s underscores ) et créé un fichier functions.php avec le code recommandé:
<?php
add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
function enqueue_child_theme_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
wp_enqueue_style( 'child-style', get_stylesheet_uri(), array('parent-style') );
}
Cependant, l'utilisation de cette méthode a créé un problème dans mon thème enfant. J'ai signalé le problème dans GitHub: link . La solution consistait à supprimer la constante PHP_INIT_MAX
de la pièce add_action()
.
Je me demande s’il s’agit d’un problème lié à Simone ou s’il concerne également d’autres thèmes (auquel cas il pourrait y avoir un problème dans la fonction) ...
Je vous remercie!
J'ai eu le même problème, je l'ai résolu en modifiant le dossier du thème enfant et les fichiers à l'intérieur des autorisations sur 775. Ce n'est peut-être pas le moyen le plus sûr, mais cela a fonctionné. Faites-moi savoir si cela fonctionne pour vous :)
Assurez-vous que votre thème parent n'utilise pas wp_enqueue_style () dans son fichier functions.php.
Si tel est le cas, vous pouvez également mettre la feuille de style enfant en file d'attente à partir de son functions.php
add_action( 'wp_enqueue_scripts', 'load_my_child_styles', 20 );
function load_my_child_styles() {
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri().'/style.css', array('twentyfourteen-style'), '1.0.0' );
}
Voici un exemple de l'apparence de l'en-tête dans votre fichier style.css de thèmes enfants
/*
Theme Name: Twenty Fourteen Child
Theme URI: http://example.com/twenty-fourteen-child/
Description: Twenty Fourteen Child Theme
Author: John Doe
Author URI: http://example.com
Template: twentyfourteen
Version: 1.0.0
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twenty-fourteen-child
*/