Le principe du thème enfant est de permettre la modification et l’ajout de fonctionnalités à un thème parent sans y apporter de quelconque changement. L’avantage majeur est de pouvoir bénéficier des mises à jour du thème parent tout en poursuivant les changements sur le thème enfant. 2 minutes chrono suffisent pour créer un child theme !
Méthode de création du child theme
Avec WordPress, la création d’un child theme est… enfantine !
- Créez un nouveau répertoire dans le dossier /wp-content/themes/NOM_DU_THEME_ENFANT ;
- Créez la feuille de styles CSS en nommant le fichier style.css ;
- Copiez / collez les lignes de code suivantes :
/*
Theme Name: Twenty Ten Child
Description: Thème enfant pour Twenty Ten
Author: Le nom de l'auteur
Template: twentyten
*/
@import url("../twentyten/style.css");
#style1 {
float:left;
}
- Indiquez l’URL de la feuille de styles du thème parent
@import url("../twentyten/style.css");ainsi que le nom du thème parent dansTemplate: twentyten; - Commencez à coder les styles ;
A propos des fichiers de thèmes
Le thème enfant va ainsi hériter de l’ensemble des fonctionnalités du thème parent. De fait, seuls les fichiers qui seront ajoutés dans le dossier du thème enfant surpasseront ceux du thème parent.
Envie de changer le header.php ? Ajoutez ce fichier dans le dossier enfant. Idem pour l’ensemble du template WordPress.
Vous pouvez également vous limiter à l’ajout d’une feuille de styles CSS et multiplier ainsi les changements purement visuels tout en conservant la structure HTML du thème parent. Cette technique est monnaie-courante pour les thèmes premium. Cela permet aux designers d’offrir plusieurs apparences pour un même thème.
Avertissement pour le fichier functions.php
Contrairement aux autres fichiers du thèmes (index.php, single.php, etc.), le functions.php ne sera pas écrasé par celui du thème enfant – si par cas il existe. Il sera au contraire charger juste avant le functions.php du thème parent. Vous pouvez donc ajouter des fonctionnalités au thème parent sans « casser » ce dernier.
Utiliser un child theme est un véritable gain de temps tant pour le développeur que pour le webmaster qui n’auront plus à se soucier des modifications apportées. Un thème source propre en termes de code et un thème enfant pour le customiser à souhaits. Ingénieux, non ?
Crédits photo : larukucafe
Podcast: Télécharger (56.2MB)

super ! merci c’est très clair
C’est vraiment très astucieux.
Merci à vous deux !
Merci beaucoup pour ces explications avec la petite vidéo qui va bien.
Y a plus qu’à, maintenant
vraiment intéressant et pratique. C’est super
Désolé d’apporter un B-mol: si l’on suit vos explications et l’on active le thème enfant, tous les menus personnalisés (faits avec le theme parent d’origine twentyten) disparaissent!!
Ensuite, ce thème enfant, si je vous ai bien compris, ne sert qu’à changer des styles de présentation. Or il me semble bien que dans la présentation US de WP 3.0, il est aussi question et surtout de pouvoir personnaliser des fichiers tels que single.php, page.php, et surtout functions.php – qui se substituent donc aux fichiers de thème parent. Vous n’en faites pas état. Est-ce moi qui ait mal compris?
Enfin vous omettez de dire que sous une configuration WP 3.0 multi-site, vous devez d’abord activer le thème enfant dans la section « super admin ».
Donc « à suivre »….
Le fichier functions.php n’est pas remplacé, par contre celui du thème enfant est chargé en premier.
Si tu regardes twentyten, par ex, tu remarqueras « if !function_exists ». Ça te permet de redéfinir les fonctions qui sont dans le thème parent.
Je vous confirme: un fichier du même nom que celui du thème parent et qui se trouve dans le dossier du thème enfant sera pris en priorité et remplacera celui du thème parent. Donc single.php, page.php, footer.php functions.php, même category-xx.php peuvent être personnalisés à volonté sans compromettre une maj. du thème parent. C’est là que réside je pense – plus que le simple changement de style – la beauté de l’architecture WP 3.0 (en fait ça existe depuis 2.7).
Il reste néanmoins la question des menus?
Les menus sont directement liés au thème et donc aux emplacements utilisés dans ce dernier. Il est donc probable en effet que ces derniers disparaissent lors de l’activation du thème enfant.
En ce qui concerne les fichiers du template – autre la feuille de styles, il me semblait que mon article en parlait suffisamment…
Pour une version multi-site de WordPress, activer le thème est une évidence et ne rentre pas dans le cadre d’un tutoriel sur les child theme mais plutôt sur la gestion d’un site en mode multi-site.
Okay, je n’avais pas lu l’article, simplement vu le podcast, désolé
Pas de soucis !
Ping : L’hebdo WordPress : Thème enfant – Automattic – Extensions | WordPress Francophone
le twenty ten n’est pas le théme idéal à partir duquel établir des thèmes enfants. Le code qu’il contient est un peu pariculier. Par exemple, le code de la Loop d’affichage des articles est dans un fichier (loop.php), et non dans index.php (par exemple). en fait, ce nouveau thème défaut est assez mal documenté. Bonne source d’infos sur les thèmes enfants sur http://themeshaper.com/thematic/
Personnellement, je trouve le nouveau thème par défaut TwentyTen nettement mieux fichu que son prédécesseur K2.
Il exploite à fond les nouvelles fonctionnalités de WordPress 3.0. En cela, je le considère comme une bonne base de travail.
Question documentation, les thèmes WP ont tous la même architecture… le codex est déjà pas mal détaillé à ce sujet, non ?
Bon certes c’est en anglais…
Et merci pour le lien !
Très sympa comme tuto ! A noter que l’ancien thème par défaut n’est pas K2 mais Kubrick !
Merci de ton commentaire ! En effet, c’est bien Kubrick…
Merci je sais enfin ce qu’est un theme enfant.
Je fonce voir les podcasts
très cool ce podcast, super bonnes explications, ça m’a vraiment aidé! @+
Bonjour,
Lorsque l’on utilise bloginfo(« template_url »)sur un thème enfant, WP nous retourne le chemin vers le thème parent.
Il existe un équivalent pour le thème enfant ?
Merci
C’est dans le codex : http://codex.wordpress.org/Function_Reference/bloginfo
Il y a une fonction qui retourne le thème enfant, l’autre le thème parent.
Merci Nicolas.
J’avais été sur cette page, mais j’ai dû lire trop vite
Merci beaucoup pour ce tutoriel. Et pour tous les autres ( je ne voulais pas laisser un commentaire sur chaque article … ). Tout est expliqué de manière claire et didactique. Je débute sur WordPress et c’est un vrai régal de bénéficier de votre expertise.
et bien moi ça marche pas.
ça fait dix fois depuis un bail que j’essaye sans succès.
le thème enfant est complet mais pas reconnu … dans admin il disent incomplet et je vois pas pourquoi il a tout tout tout
Sûrement un problème dans le fichier CSS ou un envoi qui a mal fonctionné.
Ping : 8 hacks pour le thème Twenty Eleven de WordPress | WordPress Channel
Ping : Peaxl, premier fournisseur francophone de thèmes premium pour WordPress | WordPress Channel
Avez-vous des conseils pour un bonne doc du p’tit dernier Twenty-eleven ?
Je cherche précisément un tuto pour insérer les sidebar aux pages et articles, étant donné qu’ils ne le sont pas par défaut.
Merci!
Oui une liste complète de 8 hacks pour Twenty Eleven ont été publiés.
Par contre, merci de ne pas utiliser de pseudo uniquement à des fins de SEO.
Merci Aurélien pour cette information.
.
Sinon, je pensais que les pseudos/lien étaient tolérés ici. Pas de problème je ne ferai plus
Pas de quoi pour l’info !
Les liens oui mais je modère au maximum pour éviter toute dérive. Nous sommes des humains ! :D
Je comprends
Bonjour,
Merci pour votre tutorial. Concernant la rédaction de l’article vous avez fait une faute dans la partie « Méthode de création du child theme » B. style.css sans le « s »
Bonne journée.
Faute corrigée ! Merci !
Bonjour,
votre tutoriel est très clair, le seul hic c’est que je n’arrive pas à créer de nouveau fichier sur Filezilla
Créer nouveau dossier se fait avec un clic droit mais pour un nouveau fichier je n’ai pas trouvé.
Pourriez vous m’aider ?
Merci
De mémoire, vous ne pouvez pas créer de nouveau dossier dans FileZilla directement via le menu contextuel. De fait, il faut d’abord le créer sous Windows puis l’envoyer sur le serveur.
Merci pour la rapidité de la réponse.
Je suis sur mac, je vais essayer de me dépatouiller.
Tant mieux dans ce cas il vaut mieux utiliser Cyberduck ou Transmit (payant).
J’ai suivi votre conseil, j’ai utilisé Cyberduck et ça y est !!!!
j’ai mon thème enfant pour Twenty eleven
Encore un grand merci
Bonjour,
J’ai créer le thème enfant pour le thème twenty eleven, lorsque je vais dans l’éditeur de WordPress je n’ai que ces lignes de code (voir ci après)
du coup je ne sais pas comment faire pour effectuer des transformations. Je voudrais par exemple enlever le formulaire de recherche
Toutes les lignes de code présentes dans mon éditeur wordpress
/*
Theme Name: Nom du thème enfant
Theme URI: URL du site
Description: Une description du thème
Author: Votre nom
Template: twentyeleven
*/
@import url(‘../twentyeleven/style.css’);
Salut,
Merci beaucoup pour le travail que tu fais. Les informations sont claires et précises. Je pense que je ferai appel à toi (dans la mesure du possible) si jamais je rencontre des problèmes. Je débute mais je commence à m’en sortir. Avoir des tutos aussi bien faits, la tâche est vraiment facilitée.
Bonne continuation
Bonjour,
Est-ce que cette technique ne concerne que les feuilles de style, ou bien on peut appliquer la même manip sur les autres fichiers php du thème, comme functions.php ou 404.php …?
Le thème de mon site est anglais à l’origine et je l’ai francisé. Sauf que si j’applique la dernière màj je vais perdre les modifications de functions.php et la traduction des autres pages. Mon idée c’est de dupliquer les fichiers modifiés vers le thème enfant puis d’installer la dernière version du thème.
Bonjour,
je cherche à remplacer leave a comment sur cette page http://yogalyon.fr/articles-yoga/
et j’ai cherché regardé ici et là mais je n’y arrive pas, avez vous un tuto vidéo expliquant cela ?
par avance merci et bravo pour votre boulot !
Daniel
A priori, le problème n’est plus d’actualité ? J’ai sorti ton commentaire du spam… attention à ne pas mettre plusieurs fois le même lien.
Je me réponds :
http://codex.wordpress.org/fr:Thèmes_Enfant
http://codex.wordpress.org/fr:Th%C3%A8mes_Enfant
PS je ne sais pas comment mettre un lien actif dans le commentaire, de plus celui-ci comporte un caractère accentué.
Pas de soucis, pour les liens !
Et effectivement pour te répondre : la plupart des fichiers peuvent être réutilisés dans un thème enfant.
Bonsoir,
En créant un thème fils comme indiqué ci-dessus, perd-on la possibilité d’éditer la feuille de style directement dans l’interface admin de WP 3.2.1 ?
Sans savoir qu’il était possible de faire un thème fils, j’ai fait une feuille de style fille directement dans le thème 2011 en créant un page_seb.php avec get_header(seb); et un header-seb.php qui appelle style_seb.css et cette feuille est éditable dans l’interface d’admin.
Evidémment je ne peux pas faire joujou avec tous les fichiers php et s’il y a des updates de thèmes, il faut que je copie via une recopie plutôt qu’un supprime/copie
Pour info, on parle de thème enfant (child theme).
Pour répondre à ta question, la feuille de styles est toujours accessible depuis l’éditeur de même que l’ensemble des autres thèmes.
Bonjour Aurélien,
Je me pose une petite question, j’ai édité un site sous un thème assez classique de WP (qui correspondait d’un point de vue graphique à la demande de l’entité pour qui j’ai réalisé le site).
Je n’ai pas crée de thème enfant dès le départ et j’ai pas mal modifié le style.css et quelques autres fichiers .php. (et quand je dis pas mal, c’est beaucoup) pour arriver à coller parfaitement à demande qui m’a été faite.
Peut-on créer un thème enfant sans trop de problème alors que l’on à déjà beaucoup modifié le thème parent ?
Merci.
PS: j’aime bien la nelle version du site (un amis a moi a participé à la beta)
Tout d’abord, merci d’apprécier cette nouvelle version !
Pour répondre à ta question, je dirais que cela est possible mais ne présente aucun intérêt dans la mesure où un thème enfant est conçu pour pouvoir autoriser les mises à jour du thème principal sans soucis. Tu peux toutefois en créer un pour réaliser des déclinaisons de ton thème principal (schéma de couleurs par exemple).
Merci de ta réponse Aurélien.
C’est bien ce que je pensais…
(Tu sera au WordCamp cette année ?)
Oui et en tant qu’orateur !
bonjour !
Merci pour ce tuto très utile.
J’ai appliqué la méthode aposteriori sur un thème acheté que j’avais beaucoup customisé. J’ai réinstallé le thème initial après avoir déplaçer tous mes fichiers customisés (fichiers css mais aussi plusieurs fichiers php et js) dans un dossier enfant. Quelques conflits à régler, le menu à réactiver… et le tour est joué !
Seul problème, les modifications faites dans les fichier .js ne sont pas prises en compte dans le fichier enfant et j’ai donc dû les laisser dans le fichier parent.
Est-ce normal selon vous ? (Je ne suis pas du tout développeur).
merci d’avance !
Je n’ai encore jamais testé sur des fichiers JavaScript mais cela doit peut-être pouvoir se faire à condition de l’indiquer quelque part dans l’appel de ces fichiers…
Bonjour Aurélien. Après avoir vu le podcast vidéo et lu les commentaires je suis entièrement convaincu de l’utilité d’un thème enfant pour anticiper les mises à jour, mais j’ai déja pas modifié le style.css et le dark.css du thème initial. J’envisage donc de copier dans style.css (enfant) et dark.css (enfant) les propriétés qui ont été modifiées et recharger les fichiers sources originaux du thème parent. Est-ce la bonne méthode pour ne rien perdre. J’en déduis qu’il faudra que je fasse la même chose pour les fichiers php originaux que je modifierai.
Merci
Je poste à nouveau car je ne peux pas éditer mon précédent message. Avant d’attaquer le style.css, j’ai fait quelques essais avec le dark.css. J’ai reinstallé le fichier d’origine en ayant pris soin de copier les modifications que je voulais pour mon site. J’ai donc créé un dark.css dans mon thème enfant avec juste les propriétés:valeurs que j’ai modifiées pour mon site. Rien à faire. C’est toujours le fichier original qui est pris en compte. J’ai tout fait avec le fichier : j’ai essayé avec et sans un @import url(« ../twentyeleven/colors/dark.css ») dans le fichier enfant, j’ai essayé aussi de recréer l’arborescence initiale ans le theme enfant et toujours rien. Merci de votre aide
S’il y a plusieurs feuilles de styles CSS, il se peut que certaines fonctions posent soucis dans le thème parent.
Merci
).
du coup j’en profites pour te conseiller l’installation de GROWL qui te notifiera si ton upload ftp à marcher ou non (histoire de plus avoir besoin de regarder que la taille à bien changée
On peut aussi utiliser Transmit qui signale la fin du transfert par un changement d’icône dans le dock.
Bonjour,
J’ai bien aimé ton tuto je l’ai réussi et même créer un nouveau design dans le formulaire de connexion. Toutefois j’ai une question sur la création d’un fichier header.php, je m’explique. Mon thème ne possédait pas de logo j’ai copier collé le fichier header.php du dossier parent dans le dossier enfant. Mais on peut dire que qu’il fait doublon et j’ai modifié le fichier header.php enfant.
J’ai remplacé ceci :
<a href="/ » title= »">
Par ceci:
<a href="/ »><img src="/wp-content/themes/jocasta-enfant/images/logo.png » width= »322px » height= »51px » alt= »" />
Enesperant que mon code soit prit en charge dans le formulaire commentaire.
Dois je supprimer du contenu dans mon header.php enfant je tiens à vous signaler que je n’ai rien ajouté en css.
Merci de votre aide.
Utilise bloginfo(« stylesheet_directory ») si tu veux éviter de coder « /wp-content/themes/jocasta-enfant/ » en « dur » dans ton fichier. Comme ça, si ton installation de WordPress change de répertoire, ça ne brisera pas.
Merci pour avoir répondu rapidement.
Mais je ne vois pas comment l’insérer dans ce lien.
<a href="/ »><img src="/wp-content/themes/jocasta-enfant/images/logo.png » width= »322px » height= »51px » alt= »" />
Merci
Bien après mettre creusé la tête le peut qui me reste en connaissance en php est remonté en surface. pour ceux qui cherche voici un bout de code.
<a href="/ »>
A la place des 3? mettre la balise PHP ouvrante et la seconde fermante en espérant que le reste passe bien.
Par contre on ne m’a pas répondu pour le header.php enfant si je peux supprimer ou pas tout ce que je n’ai pas modifier.
Dès que tu modifies un fichier du thème parent, fais-en une copie dans le thème enfant.
Maintenant, si tes modifications sont mineures, tu peux aussi envisager de créer un fichier texte contenant les lignes modifiées avant / après.
Sinon, la technique évoquée par Nicolas fonctionnera aussi. Un exemple avec un lien à reprendre pour ton cas : http://tinyurl.com/75at98x
Bonjour,
C’est bon comme je l’ai dit plus haut j’ai trouvé est l’ai rentré dans mon thème enfant ce qui est plus pratique qu’un fichier texte, car si il y a mise à jour il faut tout refaire. Le thème enfant c’est ce qui permet d’éviter tout ça.
Bruno
Bonjour Aurélien,
Je viens de créer mon thème enfant mais alors qu’il n’y a aucun style de présent dans le fichier style.css enfant, je constate que tout est cassé (un peu comme si il n’y avait plus de feuille de style).
Je précise que j’ai fait le test avec Mamp sur le thème Twentyeleven.
Ci joint le code :
/*
Theme Name: Photograpix
Description: Theme enfant pour Twenty Eleven
Author: Loic
Template: twentyeleven
*/
@import url(« http://localhost:8888/blog/wp-content/themes/themes/twentyeleven/style.css »);
Oups…
J’ai oublié de dire merci !
Désolé du retard, pour réponse : ton lien d’import est sans doute faux il y a 2 fois /themes
Merci Aurélien. Je l’avais pourtant lu et relu… Allez, je cours chez l’opticien !
Hello,
J’ai beaucoup travaillé avec Joomla et là j’essaye WordPress. Je comprends très bien l’intérêt de faire un thème enfant mais je rencontre le même problème avec le thème Twenty Eleven. Sans ajouter de css dans style.css, ma mise en page est cassée… Aurélien Denis, tu as sans doute essayé avec le Twenty Eleven ?
Vérifies le nom du dossier du thème, de même que les métadonnées du child thème dans sylve.css – notamment theme name et template.
Il faut vérifier la validité du lien d’import CSS aussi.
Merci pour ta réponse rapide ! J’ai tout repris depuis le début et cela fonctionne bien. Désolé pour le dérangement. Est ce que cette ligne est importante : Theme URI: URL du site ? Sinon, j’ai une autre question : Dans le menu (le menu avec la barre noire), j’arrivais bien à mettre des liens vers des pages (non catégorisées) mais je n’arrivais pas à mettre des liens vers des catégories. Maintenant que j’ai crée un thème enfant, cela fonctionne bien. Il ya un rapport à ton avis ?
Non la ligne Theme URI est facultative. Pour le menu, c’est géré sous Apparence > Menus. Si tu n’as pas créé d’autres fichiers que styles.css dans ton thème enfant, aucune raison non.
bonjour,
Je suis entrain de faire un test sur wordpress pour comprendre son fonctionnent. J’avais commencé le blog sans thème enfant. J’avais modifié le header que j’ai donc ajouté à mon theme enfant. Tout apparait bien, mais je rencontre la difficulté suivante : quand je tente d’ajouter un nouvel article, j’obtiens une erreur 500 et dans la barre d’adresse l’adresse se finit de la manière suivante: /wp-admin/post-new.php. Pouvez vous m’indiquer
Une erreur 500 informe qu’il y a un soucis côté serveur.Peux-tu nous donner l’intégrale du message ?
Juste une erreur 500 sur le navigateur,
sur l’interface admin je vois ceci :
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 23040 bytes) in /mnt/154/sdc/b/d/cathyboulot/test ad/www/wordpress3/wp-admin/includes/class-wp-comments-list-table.php on line 454
Changes d’hébergeur ou fais évoluer ton offre si tu es sur du mutualisé de base.
C’est d à quoi ? en fait j’utilise un espace gratuit pour faire des tests, une sorte de brouillon
Il faut bannir les hébergeurs gratuits et prendre quelque chose de correct en mutualisé pour débuter.
Pour 60 € an (domaine compris), il y a Mavenhosting qui fait tourner ce site.
Je confirme que cet hebergeur tourne très bien j’y suis depuis 4 ans.
En fait , comment faire pour pouvoir utiliser mon site comme je le pouvais encore hier. Dernières modification : j’ai essayé de faire un theme enfant, comme cela générait des erreurs je l’ai supprimé… mais je n’ai pas retrouvé ma capacité à faire des articles
Je voudrai juste savoir en fait ce qui provoque cette erreur, je ne cherche pas encore un hébergeur…
Justement, les erreurs 500 sont liés à des serveurs qui manquent par exemple de mémoire. Si tu veux faire des tests, le mieux est d’installer WordPress en local.
Oui je comprend, mais comme je travail de chez d’un et d’un autre poste à l’exterieur qui ne m’appartient pas c’était à priori la méthode qui m’est venue naturellement à l’esprit pour transporter le brouillon avec moi ( ah comme c’est dur de débuter) ….mais effectivement un disque dur portable serait certainement plus approprié lol
En tout cas c’est le .htaccess qui posait soucis. A présent tout fonctionne à nouveau // je vais retenter ma chance avec un theme enfant demain/ merci pour l’aide
Il existe des versions portables sur clé USB mais des logiciels comme WAMP / EasyPHP.
merci beaucoup pour l’info
salut aurélien,
merci pour ton tuto.. mais j’ai un problème, j’ai testé des 10zaines de fois en local avec easyphp la création d’un childtheme, tout est ok.. mais quand j’essaie sur mon serveur (ovh) rien n’apparait en admin.
J’ai respecté scrupuleusement le truc.. j’ai vérifie les chmod via filezilla, j’ai même essayé avec un chemin absolue : pour le @import
mais rien de noouveau en admin j’ai beau vider les caches..!.. as-tu déjà rencontré ce problème ? Pourtant j’ai installé un autre theme (Graphene http://wordpress.org/extend/themes/graphene) mais via un zip, tout était ok..
j’ai debaltéré trops vite, j’ai trouvé d’ou venait mon erreur.. il s’agissait du nom du dossier thème parent (sensible à la casse), d’ailleur qlq précisions ici :http://codex.wordpress.org/fr:Th%C3%A8mes_Enfant
Merci de ce retour qui permettra sans doute à d’autres utilisateurs de s’en sortir !
Bonjour,
N’ayant rien trouvé sur le net… Je vous soumet une solution pour celles et ceux qui souhaitent travailler avec ce système parent/enfant et qui ont l’habitude de supprimer certaines pages (archive.php, category.php, single.php, etc…). En effet je préfère centraliser le code sur index.php et sur loop.php : quelques condition genre if is_single() suffisent à se passer de tout le toutime ; )
Problème : lors de la mise à jour du thème parent les pages supprimées reviennent et c’est la cata !
Solution : dans le child theme mettre toutes ces pages (single.php, …) avec seulement ce code php : include( get_index_template() );
Si vous avez une meilleure solution… n’hésitez pas.
Merci
Bonjour Aurélien,
C’est bizarre, ça marche pour tous les php du template (Magazine Basic) sauf pour functions.php ou il m’a fallu mettre la traduction de « Read more » dans le fichier parent.
En effet, en créant un functions.php enfant, c’est une page blanche sans la moindre information qui apparaît …
Le fichier functions.php est un peu spécial. Dans le cas d’un thème enfant, il doit être modifié directement dans le thème parent si cela ne fonctionne pas.
Bonjour,
Il y a quelque chose qui m’échappe.
Pour complètement customiser mon site, j’ai besoin de rajouter quelques div (pour mettre des images de fond sur mes titres etc…).
Je suis donc amenée à modifier de nombreuses pages (single.php , page.php etc…) et à les placer dans le thème enfant.
Du coup ces pages ne bénéficieront pas des réactualisations, et donc je ne vois pas bien l’intérêt…
pouvez-vous m’éclairer?
Merci beaucoup !!
Tu fais référence aux mises à jour de WordPress ?
Mises à jour WordPress et plugins ajoutés (e.commerce, light-box…)
Ta dernière réponse est très claire, je pense qu’il n’y aura pas de soucis. Merci!
si tu place un nouveau fichier single.php dans le childtheme, il faut placer uniquement les modifications php et non tout le code, comme tu aura les modifs des mises à jour pour ces fichiers c’ets bien ça aurélien ?
Non le fichier single.php de ton thème enfant sera utilisé en lieu et place du fichier parent. Les fichiers qui n’existeront pas dans le thème enfant seront récupérés dans le thème parent.
Pour le fichier de fonctions, on peut cumuler les 2.
ha ok.. donc zoukzouk à qlq part raison au sujet des maj wp, les fichiers php dans le child theme ne sont pas mis à jours..? dommage?..
C’est tout le principe du thème enfant : appliquer les mises à jour sur le thème parent et apporter des changements dans le thème enfant.
Généralement, la structure d’un thème n’évolue que très peu ou pas du tout.
Ce sont surtout des correctifs de bugs, l’ajout de fonctionnalités ou de traduction. Les fichiers single.php, page.php et autre ne sont que rarement concernés.
Super tuto, merci!!!
Bonsoir,
Je suis désolée d’avoir tant de mal à comprendre mais je ne désespère pas.
Je suis tombée ici par hasard alors que je cherche depuis des heures une infos pour savoir où et comment agrandir la taille de la colonne des articles.
J’ai donc compris qu’il valait mieux garder sous le coude un thème enfant qui allait recevoir toutes les modifications qu’on a faites sans qu’elles soient transformées par une mise à jour.
Donc en suivant la vidéo vu que mon ftp est filezilla j’ai créé un fichier bloc note en incluant le code, placé l’url du css style de mon blog, mis mon nom en auteur, modifié pour le template que c’était twentyseven (puisque c’est ce thème là que j’utilise), et je suis prête à le transférer dans le dossier style.css créé dans mon ftp mais….
J’avais au préalable téléchargé des plugins dont un qui me permettait facilement de changer les couleurs (« themes extensions »).
Ma question est : comment sauvegarder ces modifications faites automatiquement par les plugins lors de futures mises à jour du thème, puisque le thème enfant ne les a pas ?
Et en transférant ce dossier « theme child » dans le ftp, est-ce que ça ne risque pas d’annuler lors de prochaines mises à jour les modifications faites par les plugins sur le thème parent ?
Merci à l’avance et bonne soirée
Je voulais dire twentyeleven. Pardon.
Bonsoir.
A la lecture des réponses au dessus je crois avoir compris.
Il y aurait :
- Le thème « parent » qui n’est modifié que de temps en temps et assez peu par des mises à jour
- Le « Thème enfant » qui conserve des modifications puisque les màj ne se font que sur le « parent ».
Si donc c’est le child thème qui prévaut sur l’autre, il ne bénéficiera pas des mises à jour, mais ce n’est pas grave car au moins on ne perd pas tous les ajouts qu’on a apporté et pour lesquels on s’est cassé la tête.
Donc si j’ai bien compris, lorsqu’on transfère un plugins une fois que le child Thème a été crée, il faut le placer directement dans un des dossiers du thème Enfant (et pas dans le Thème parent).
Et les plugins transférés sur le thème parent avant que le thème enfant est créé, seront automatiquement transférés dans le thème enfant puisqu’on fait une copie du thème initial (ils sont tous importés) ?
Merci à l’avance !
OK pour le premier paragraphe. Pour être précis, le thème enfant héritera des apports du thème parent quand il y a un « vide » côté enfant.
Exemple : si le fichier page.php est absent du thème enfant, il héritera du thème parent (c’est comme dans la nature humaine).
Généralement, ce ne sont que quelques fichiers que l’on modifie (sinon autant créer un thème de A à Z) comme la feuille de styles.
Le fichier functions.php est un spécial car complémentaire du thème parent. Les 2 seront utilisés car indispensables.
Par contre, il y a confusion avec les plugins ! Les extensions disposent de leur propre dossier et sont indépendants du thème.
Il n’existe pas à ce jour de système équivalent de child plugins.
Merci beaucoup Aurélien pour ces réponses
Donc lors de transfert de plugins dans le thème parent (vu que ce n’est pas faisable dans le Child Thème puisqu’il n’y a pas d’équivalent ) le thème enfant en héritera automatiquement car le fichier page php en est absent au départ.
Puisqu’un dossier plugins est indépendant du thème.
En gros je me faisais du souci pour rien ^^.
Je pense que tu mélanges pas mal de choses (les thèmes et les plugins notamment)… mais en effet il ne faut pas se faire de soucis : il suffit de tester !
Hem oui
On va dire que je suis une « madame Michu » qui a décidé de mettre les « mains dans le cambouis » et en apprenant sur le tas.
Heureusement qu’il y a des tuto et des gens comme toi pour aider
Je n’ai pas encore créé le thème enfant mais ça ne saurait tarder, merci encore.
Alors…
Aujourd’hui fut le jour J où j’avais décidé de tenter de créer ce « thème enfant » quoiqu’il arrive, même si ma machine à moi n’était toujours pas réparée.
J’ai calculé dans mon planning qu’il me faudrait bien 3 heures pour y arriver…
Et en effet, 2h45 d’hésitations en me disant que forcément je n’allais pas y arriver + 1/4 d’heure pour tout recommencer en ré-écoutant la vidéo (cette fois j’ai créé un fichier sur Notepad, merci à Britain pour l’astuce, et je n’ai pas touché à l’url -sauf pour préciser le thème twentyeleven- puisque c’est mon thème par défaut comme expliqué) = 3 heures
Et c’est dingue mais… en un quart d’heure j’y suis arrivée !!!!
\°/
Merci pour ce tuto si explicite Aurélien. ^^
P.S. Je n’aurais peut-être pas du me réjouir si vite car en regardant la tête de mon thème ça a complètement changé : l’est tout fracassé, vide, les menus entassés d’un côté, etc, j’ai du louper un épisode…
*soupir*
J’ai réactivé le thème parent, tout est revenu, heureusement
Je ne comprends pas le pb avec le thème enfant car d’après sa description sous « activer » il y a :
« Twenty Eleven Child par Satynethe
Th�me enfant pour Twenty Eleven
Activer | Aperçu | Supprimer
Les fichiers du thème se trouvent dans /themes/twentyeleven. Les feuilles de style sont dans /themes/theme_enfant. Twenty Eleven Child utilise les modèles de Twenty Eleven. Tout changement dans les modèles affectera les deux thèmes. »
Je crois que je viens de comprendre 2 de mes erreurs :
1- il fallait que j’ajoute dans l’url proposé dans le tuto, à la place des 2 points en début de ligne, l’url de la page css du thème parent, ce qui donne au total :
url(« http://www.[adresse de mon site/wp-admin/theme-editor.php/twentyeleven/style.css »);
…quoique je ne sois pas sûre de l’utilité du « wp admin/theme editor.php »… quelqu’un pourrait me confirmer svp ?
2- si ça donne un truc vide c’est parce qu’il manque tous les autres fichiers (sauf le css qui est bien présent dans l’éditeur, j’ai vérifié).
Donc il faudrait que je crée tous ces fichiers en c/c le contenu du thème parent en doublon… un à un avec notepad…
Ou alors que je transfère direct via le tableau de bord de mon hébergeur, ça me semble possible aussi.
Comment vous avez fait, vous ?
Hum désolé mais je ne comprends pas grand chose. Normalement, si tu suis pas à pas le tutoriel tout doit fonctionner.
Le plus important est d’indiquer l’URL de la CSS du thème parent comme indiqué dans l’article :
@import url(« ../twentyten/style.css »);
Par contre, tout se passe dans le dossier /wp-content/themes/ et en aucun dans un autre dossier comme tu l’évoques.
Merci Aurélien pour cette réponse rapide, je vais re-corriger cette url

Pour le reste avec screen ce sera peut-être plus clair.
Je constate que mon thème enfant ne contient que le css style, donc ce doit être à cause de ça que lorsque je l’active l’affichage est « cassé » (menu entassé d’un côté, plus d’articles etc).
C’est pour ça que je me dis qu’il faut que je le complète avec les autres fichiers que le thème parent, lui, a.
S’il ne faut intervenir que dans le dossier /wp-content/themes, ça veut dire que…
aïe non je ne comprends plus rien.
J’ai 37 fichiers dans le thème parent :
http://i45.servimg.com/u/f45/10/05/12/45/wp_the10.png
1 seul dans le thème enfant :
http://i45.servimg.com/u/f45/10/05/12/45/wp_the11.png
Ce ne me semble pas équilibré… O-o
(d’ailleurs faudrait que je me fasse greffer une logique informatique dans le cerveau je me sentirai plus équilibrée tant qu’à faire
)
… ou alors ce qui m’a échappé c’est qu’on active le thème enfant comme indiqué sur le tuto, que pour vérifier qu’il contient bien les indications demandées.
Après ça, on le désactive et on revient sur le thème parent qu’on active à nouveau.
Le Child them ne servira que pour aller placer les nouveaux codes css dans son fichier css qui transmettra automatiquement les nouvelles données au theme parent sans activer à nouveau le theme enfant.
Si c’est aussi simple que ça je suis confuse d’avoir envahi de mes commentaires cette page, inutilement, mes excuses.
Je pense effectivement que tu compliques la vie pour rien…
Le thème enfant va contenir des fichiers modifiées à partir du thème parent. Exemple : tu n’apprécies pas la mise en page de single.php (celui utilisé pour les articles) et tu décides d’en créer un nouveau dans le thème enfant pour que ce dernier s’applique.
Tous les fichiers du thème (enfant ou parent) sont placés dans le répertoire /wp-content/themes sur ton FTP et nulle part ailleurs.
D’ailleurs, il ne faut pas intervenir ailleurs que dans ce dossier /wp-content.
Au final, tu dois activer le thème enfant dans ton administration WordPress. Si tu as bien suivi le tutoriel, il sera indiqué que ce thème est lié à un thème parent dans la description.
Merci Aurélien,
Je commence un petit peu à comprendre…
)
En réalisant que mon niveau n’est pas 0 mais -10 (ceci dit sans trop de complexes
Cependant je rends compte de mon erreur ici au cas où ça pourrait servir (c’est un copain informaticien l’a repérée sur mon compte FTP hier soir) :
Avec filezilla, je voulais créer un fichier avec « Bloc Note » puisque ce FTP ne propose que de créer des dossiers et non pas des fichiers, et j’ai cru bien faire suite à une panne d’ordi, en utilisant notepad++ mais… ça m’a créé un répertoire, voilà pourquoi ça ne fonctionnait pas.
Je suis tellement ignorante que je n’ai pas été capable de détecter moi-même le problème, d’où le fait que je n’arrivais pas à l’expliquer (et que je cherchais du côté du nombre de fichiers que contenait le « parent » alors que « l’enfant » n’en a qu’un ce qui en réalité n’est pas un problème puisqu’il hérite des fichiers parents).
En modifiant comme il faut ça roule, voili, voilou.
Ravi que cela roule à présent !
juste un petit mot pour vous remercier pour tous ces tutoriels pleins de « bienveillance » ?!

C’est clair, bien écrit et abordable.
Des qualités rares en somme
M.
Un commentaire comme on les aime !
Bonjour,
Petite question : peut-on créer des thèmes enfants également pour les plugins ?
Merci
Oui mais c’est beaucoup plus complexe. Julio en parle sur son site : http://www.boiteaweb.fr/creer-un-plugin-enfant-sous-wordpress-3309.html
Ping : Faites des enfants mais ne modifier pas vos thèmes directement ! | Marie Faubert
Bonjour et merci pour cet article très intéressant.
Après l’avoir lu je me demande si ce n’est pas une solution commode pour réaliser une app tab page facebook sur iframe à partir de son thème. Qu’en pensez-vous ?
Bonjour,
Alors j’ai commencé à « créer des enfants » , mais quelques doutes m’emparent avant de bien débuter le processus. En effet, si l’on créé un dossier CHILD et y met des fichiers tels que style.css, footer.php… et on les modifie par la suite sans toucher à ceux du parent, mais lorsque des nouvelles améliorations ont été faites sur le dossier parent, alors cela ne servira à rien puisque nous on modifie ceux du dossier CHILD ?
Je m’excuse de poser cette question un peu bête . Par exemple, la nouvelle version de mon thème apporte des améliorations sur STYLE.CSS alors ce sera normal que la nouvelle version de style.css remplace l’ancien. Or avant de faire la upgrade de mon thème, je créé le dossier CHIRD et y met style.css (ancien) dedans. Après la mise à jour, le dossier Parent aura la nouvelle version de style.css et dans CHILD, l’ancienne. Or, d’après le tutoriel, c’est celui de CHILD (ancien) qui surpassera celui de Parent (nouveau). Il y a quelque chose que j’ai pas saisi dedans
Merci d’avance de votre réponse qui m’apportera quelques éclaircissements là dessus !
(Merci pour votre tutoriel)
Oui les fichiers du thème enfant sont prioritaires mais ils héritent de leurs parents. Par exemple, dans la feuille de styles du thème enfant, tu peux y placer des styles nouveaux (suite à une modification du thème notamment) et surpassés certains styles parents (balises a, p, etc.).
Je sais ce n’est pas évident à saisir la première fois.
Bonjour, j’ai créé un child de twenty-eleven avec l’ensemble des fichiers PHP car je souhaite les traduire. Quand je suis sous l’éditeur de WP, je modifie mon fichier et j’obtiens le message « Le thème demandé n’existe pas. ». Quelqu’un a une idée de la raison de ce message d’erreur ?
Bonjour,
J’ai créer un thème enfant du thème ifeature mais j’ai un doute sur le nom de la template : ifeature ou iFeature
J’utilise iFeature
/*
Theme Name: ifeature-child
Description: Thème enfant pour ifeature
Author: mon thème
Template: iFeature */
@import url(« ../ifeature/style.css »);
en local tout fonctionne mais quand je transfère sur OVH, ça ne marche pas, une idée de ce dysfonctionnement
Cordialement
Noami
Re,
J’ai juste oublié, on peut faire une copie du fichier style.css du parent dans le thème enfant et juste modifié certains styles, ou y mettre uniquement les styles modifiés du thème parent.
J’espère avoir été clair
merci de me lire
Cordialement
noami