Le thème enfant ne remplace pas les thèmes parents style.css
4 réponses
- votes
-
- 2014-10-11
Il convient denoter que lafeuille de styleenfant charge après les styles duthèmeparent,celane devrait doncpasposer deproblème. Jepense que ce qui sepasseici,c'est que vousessayez demodifier des styles quine setrouventpas dans lafeuille de styleparent,mais dans d'autresfeuilles de stylepersonnalisées. Sitelest le cas,vosmodificationsne fonctionnerontpas car lafeuille de style de votrethèmeenfantestprobablementen cours de chargement avant lesfeuilles de stylepersonnalisées duthèmeparent.
Il convient également denoter que
@import
ne doitpas être utilisépourimporter lafeuille de styleparent. Labonnefaçonest de lemettreen file d'attenteen utilisantwp_enqueue_style()
accroché àwp_enqueue_scripts
Voici commentmettre correctementen file d'attenteet ajouter lafeuille de styleparent authèmeenfant.
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' ); }
D'après le codex,voici à quoi devrait ressembler votrefeuille de style
/* 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'aimis àjour le codex avec cesinformations dans cet article
< EDIT
D'après un commentaire ci-dessous
Si lethèmeparentn'utilisepas wp_enqueue_style (),commentpeut-onenque le style.css duthèmeparent SANSjouer avec lesmodèles duthèmeparent? Cepointn'estpas clair dans le Codex que vous avezmis àjour. Pouvez-vous clarifier avec unexemple.
Je veux commencerpar ceci,si vous êtes un auteur dethème,veuillez JAMAIS ajouter defeuilles de style ou de scripts via lesbalises
<link>
dans l'en-tête de votrethème . C'est lamanièreincorrecte de lefaire. Mettez correctementen file d'attenteet enregistrez ces styleset scripts via le hookwp_enqueue_scripts
comme décrit dans le CodexPour être honnête,je n'aijamais réalisé qu'il y avaitencore des auteurs dethèmesfaisant cela. Jepense que lameilleurefaçonprobable de résoudre ceproblèmeest de copier le header.phpparent dans votrethèmeenfantet de supprimer (supprimer)manuellement les styleset les scripts de l'en-tête.
Vouspouvezensuiteprocéder à lamiseen file d'attenteet lesenregistrer comme d'habitudeen utilisant
wp_enqueue_scripts
comme dans l'exemple ci-dessus. Rappelez-vous simplement,utilisezget_template
directory_uri () `pourmettreen file d'attenteet enregistrer les scriptset les styles duthèmeparent,et rappelez-vous,l'ordre dans lequel vous chargez les styleset les scriptsestimportantici. Si un script/style dépend d'un autre,chargez-le après ce script/style spécifiqueIt should be noted that the child stylesheet loads after the parent theme's styles, so this should not be a problem. I think what is happening here is that you are trying to change styles that is not in the the parent stylesheet, but in other custom stylesheets. If that is the case, then your changes won't work as most probably your child theme's stylesheet is loading before the custom stylesheets in the parent theme.
It should also be noted that
@import
should not be used to import the parent stylesheet. The correct way is to enqueue it usingwp_enqueue_style()
hooked towp_enqueue_scripts
Here is how you properly enqueue and add the parent stylesheet to the childtheme.
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' ); }
From the codex, this is the correct way how your stylesheet should look like
/* 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 -------------------------------------------------------------- */
NOTE
I have updated the codex with this information in this post
EDIT
From a comment below
If the parent theme does not use wp_enqueue_style() then how can one enque parent theme's style.css WITHOUT messing with the parent theme's templates? This point is not clear int Codex you updated. Can you please clarify with an example.
I want to first start of with this, if you are a theme author, please, NEVER add stylesheets or scripts through
<link>
tags in your theme's header. This is the incorrect way of doing it. Properly enqueue and register these styles and scripts through thewp_enqueue_scripts
hook as described in the CodexTo be honest, I never realized that there are still some theme authors doing this. I think the best probable way to solve this problem is to copy the parent header.php to your child theme and manually removing (deleting) the styles and scripts from the header.
You can then proceed to enqueue and register them as per normal using
wp_enqueue_scripts
as in the example above. Just remember, make use ofget_template
directory_uri()` to enqueueu and register scripts and styles from the parent theme, and remember, the order in which you load styles and scripts are important here. If a script/style is dependent on another one, load it after that specific script/style-
Bonneidée demettre àjour lapage Codex ;-)Good idea to update the Codex page ;-)
- 2
- 2014-10-11
- birgire
-
Merci,je suistotalement d'accord.J'espère que cela aidera les autres à l'avenir àfaire les choses unpeumieux :-)Thanks, I totally agree. I hope this will help others in future to do things a bit better :-)
- 0
- 2014-10-11
- Pieter Goosen
-
si lethèmeparentn'utilisepas wp_enqueue_style () alors commentpeut-onenque leparent style.css SANSjouer avec lesmodèles duthèmeparent?if the parent theme does not use wp_enqueue_style() then how can one enque the parent style.css WITHOUT messing with the parent theme's templates?
- 0
- 2014-11-06
- Tara
-
si lethèmeparentn'utilisepas wp_enqueue_style () alors commentpeut-onenque leparent style.css sansjouer avec lesmodèles duthèmeparent.Comme vous le savez,ne pasjouer avec lesmodèles duthèmeparentest lebut de la création d'unthèmeenfant.if the parent theme does not use wp_enqueue_style() then how can one enque the parent style.css Without messing with the parent theme's templates. As you know, not to mess with the parent theme's templates is the purpose of creating a child theme.
- 0
- 2014-11-06
- Tara
-
@Pieter Goosen: Si lethèmeparentn'utilisepas wp_enqueue_style () alors commentpeut-onenque le style.css duthèmeparent SANSjouer avec lesmodèles duthèmeparent?Cepointn'estpas clair dans le Codex que vous avezmis àjour.Pouvez-vous clarifier avec unexemple.Merci.@Pieter Goosen: If the parent theme does not use wp_enqueue_style() then how can one enque parent theme's style.css WITHOUT messing with the parent theme's templates? This point is not clear int Codex you updated. Can you please clarify with an example. Thanks.
- 0
- 2014-11-06
- Tara
-
@Tara Merci d'avoir soulevé cela,je n'aijamais honnêtementpensé que lesgens lefaisaientencore.S'il vousplaît voirmamodification dema réponse@Tara Thanks for raising this, I never honestly thought that people are still doing this. Please see my edit to my answer
- 0
- 2014-11-07
- Pieter Goosen
-
@PieterGoosen J'utilise unthème qui a différentes versions,c'est-à-dire sombre,clair,etc. Il ajoute unefeuille de stylepersonnaliséepour cela.Ma questionest de savoir comment le remplacer duthèmeenfant?@PieterGoosen I am using a theme which has different versions i.e. dark, light etc. It adds a custom style sheet for it. My question is how to override it from child theme?
- 0
- 2015-06-30
- Imran
-
@Imran vous devriez commencer unenouvelle question avec cenuméro :-)@Imran you should start a new question with this issue :-)
- 0
- 2015-06-30
- Pieter Goosen
-
- 2014-10-10
Assurez-vous que votrethèmeparentn'utilisepas wp_enqueue_style () dans sonfichierfunctions.php.
Si c'est le cas,vouspouvez égalementmettreen file d'attente lafeuille de styleenfant àpartir de sonfunctions.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 unexemple de l'aspect de l'en-tête dans votrefichier style.css dethèmesenfants
/* 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 */
Make sure your parent theme does not use wp_enqueue_style() in its functions.php file.
If it does, you can also queue the child stylesheet from its 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' ); }
Here's an example of how the header should look in your child themes style.css file
/* 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 */
-
Salut,je veuxjustementionner que lapartie `@import`n'estpas recommandée,nousferionsmieux de lamettreen file d'attente à laplace.Voirparexemple ce [thread] (http://wordpress.stackexchange.com/questions/163301/versioning-import-of-parent-themes-style-css).Hi, I just want to mention that the `@import` part is not recommended, we better enqueue it instead. See for example this [thread](http://wordpress.stackexchange.com/questions/163301/versioning-import-of-parent-themes-style-css).
- 4
- 2014-10-10
- birgire
-
@birgire Mercipour lamise àjour.Voir cet article avec une autreméthode http://wordpress.stackexchange.com/a/167903/9884@birgire Thanks for the update. See this post with alternate method http://wordpress.stackexchange.com/a/167903/9884
- 0
- 2014-11-09
- Brad Dalton
-
- 2014-10-20
J'aitrouvé cefilen lisant le chapitre Thèmeenfant dans WordPress Codex.
J'ai créé unthèmeenfantbasé sur Simone (qui,à sontour,estbasé sur _s underscores )et créé unfichierfunctions.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 cetteméthode a créé unproblème dansmonthèmeenfant. J'ai signalé leproblème dans GitHub: lien . La solution était de supprimer la constante
PHP_INIT_MAX
de l'élémentadd_action()
.Jeme demande s'il s'agit d'unproblème lié à Simone ou si cela affecte également d'autresthèmes (auquel cas celapourrait éventuellement être unproblème dans lafonction) ...
Merci!
I found this thread while reading the Child Theme chapter in WordPress Codex.
I built a child theme based on Simone (which is, in turn, based on _s underscores) and created a functions.php file with the recommended code:
<?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') ); }
However, using this method created a problem in my child theme. I reported the issue in GitHub: link. The solution was to remove the
PHP_INIT_MAX
constant from theadd_action()
piece.I wonder if this is a Simone-related issue or if this affects other themes as well (in which case could possibly be a problem in the function)...
Thank you!
-
Vous auriez dûposer cela comme une question.Malheureusement,c'est lapremièrefois queje vois cemessage de votrepart.Cette question a été soulevée hieret elleestmaintenant résolue.Veuillez consulter [cepost] (http://wordpress.stackexchange.com/a/167643/31545)You should have asked this as a question. Unfortunately this is the first time that I saw this post from you. This issue was raised yesterday, and it is resolved now. Please see [this post](http://wordpress.stackexchange.com/a/167643/31545)
- 0
- 2014-11-07
- Pieter Goosen
-
- 2017-06-15
J'aieu lemêmeproblème,je l'ai résoluen modifiant le dossier duthèmeenfantet lesfichiers à l'intérieur despermissionsen 775. Cen'estpeut-êtrepas lemoyen leplus sûrmais cela afonctionné.Faites-moi savoir si celafonctionnepour vous :)
I had the same problem, I resolved it modifying the child theme folder and the files inside permissions to 775. It may not be the safest way but it worked. Let me know if this works for you :)
-
Yikes.Jene peuxpasimaginer leniveau de désespoir qui auraitpu vous conduire à cela.C'esttellement dangereux.Je cherche une autre solution ou un autrethème.Yikes. I can’t imagine the level of desperation that might have driven you to this. This is so dangerous. I’d be looking for some other solution, or some other theme.
- 0
- 2018-09-13
- Tedinoz
Je viens de créer unthèmeenfantmais chaquemodification queje fais dans le style.cssn'écrasepas le style.cssparent - les autresfichiersfonctionnent.Je viens de lefaire comme ça:
Etmaintenant,quandje change des choses dans le styleenfant.css .... lapage s'occupe du changementtoujours de lamêmemanière.Pourquoi?