Créer des thèmes enfants (child themes) avec WordPress

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 !

    1. Créez un nouveau répertoire dans le dossier /wp-content/themes/NOM_DU_THEME_ENFANT ;
    2. Créez la feuille de styles CSS en nommant le fichier style.css ;
    3. 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;
}
  1. 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 dans Template: twentyten ;
  2. 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

Articles relatifs

Ce contenu a été publié dans Design, Tutoriels WordPress par Aurélien Denis, et marqué avec . Mettez-le en favori avec son permalien.

A propos Aurélien Denis

Aurélien Denis est le fondateur du projet WordPress Channel proposant tutoriels et podcasts librement téléchargeables. En 2010, il fonde Neticpro, une agence Web spécialisée WordPress. Il est aussi co-fondateur du site Protuts.net (tutoriels PC/Mac/Linux) et community manager pour l’Imagine Cup 2011/2012, une compétition mondiale organisée par Microsoft.

125 réflexions au sujet de « Créer des thèmes enfants (child themes) avec WordPress »

  1. 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.

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

  3. Ping : L’hebdo WordPress : Thème enfant – Automattic – Extensions | WordPress Francophone

  4. 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 ! :cool:

  5. 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

  6. 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.

  7. 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

  8. Ping : 8 hacks pour le thème Twenty Eleven de WordPress | WordPress Channel

  9. Ping : Peaxl, premier fournisseur francophone de thèmes premium pour WordPress | WordPress Channel

  10. 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.

  11. 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

  12. 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’);

  13. 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

  14. 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.

  15. 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

  16. 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 ! :cool:

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

      • 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 !

  17. 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

  18. 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

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

  20. 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.

      • 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

  21. 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

  22. 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 »);

    • 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 ?

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

  23. 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

  24. 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

  25. 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

  26. 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..

  27. 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

  28. 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 …

  29. 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 !!

      • 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.

          • 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.

  30. 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 :)

  31. 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.

  32. 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 ^^.

  33. 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.

  34. 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. »

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

  36. Merci Aurélien pour cette réponse rapide, je vais re-corriger cette url
    :oops:
    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 :) )

  37. … 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.

  38. 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. :)

  39. 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.

  40. Ping : Faites des enfants mais ne modifier pas vos thèmes directement ! | Marie Faubert

  41. 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 ?

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

  43. 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 ?

  44. 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

  45. 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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>