Recherches populaires

Base de connaissances — Définition

Thème enfant

Comment un thème enfant WordPress hérite d’un thème parent, quels fichiers il exige, comment fonctionnent les remplacements et quand s’en passer.

Qu’est-ce qu’un thème enfant?

Un thème enfant est un thème WordPress qui désigne un autre thème installé comme parent, hérite de l’ensemble de ses gabarits, de ses styles et de ses fonctionnalités, et vous permet de modifier seulement ce dont vous avez besoin dans un dossier distinct. Lorsque le thème parent est mis à jour, ses fichiers sont remplacés, mais le dossier du thème enfant reste intact : vos modifications sont donc préservées.

Cette relation est établie par une seule ligne dans l’en-tête du fichier style.css du thème enfant : Template: parent-folder-name, qui doit correspondre au nom du répertoire du parent dans wp-content/themes/. WordPress cherche ensuite d’abord dans le thème enfant chaque fichier dont il a besoin et se rabat sur le parent lorsque l’enfant n’en fournit pas. Un seul niveau d’héritage est pris en charge : il n’existe pas de thèmes « petits-enfants ». Si la structure des thèmes est nouvelle pour vous, notre article sur les thèmes WordPress en présente les bases.

Pourquoi un thème enfant est important

Le thème enfant est la façon reconnue de personnaliser un thème que vous n’avez pas écrit tout en continuant de recevoir ses mises à jour.

  • Des mises à jour sans danger : les modifications apportées directement aux fichiers d’un thème parent sont effacées à la prochaine mise à jour de ce thème. Un thème enfant les conserve dans un endroit distinct.
  • Les correctifs de sécurité continuent d’arriver : puisque vous ne créez jamais de copie divergente du parent, vous pouvez appliquer ses correctifs de bogues et de sécurité sans fusionner le code à la main.
  • Des modifications faciles à repérer : tout ce qui est personnalisé se trouve dans un petit dossier, ce qui accélère grandement les audits, les transferts de dossier et le dépannage.
  • Un contrôle de version plus propre : vous pouvez conserver le thème enfant dans Git et traiter le parent comme une dépendance tierce.
  • Un retour en arrière simple : revenir au thème parent vous montre instantanément si un problème vient de vos personnalisations ou du thème lui-même.

Comment fonctionne un thème enfant

  1. En-tête de style.css : le seul fichier obligatoire. Son en-tête en commentaire doit contenir un Theme Name et la ligne Template qui pointe vers le parent. Vous pouvez ajouter du CSS personnalisé sous l’en-tête.
  2. functions.php : facultatif, et il ne remplace pas le fichier du parent. Le functions.php de l’enfant est chargé en premier, puis celui du parent; vous ajoutez donc des crochets (hooks), des filtres et des fonctions utilitaires à côté du code du parent. C’est aussi là que vous chargez les feuilles de style avec wp_enqueue_style() plutôt qu’avec la règle CSS @import.
  3. Remplacement de gabarits : copiez un gabarit comme single.php, header.php ou un gabarit WooCommerce dans le thème enfant, au même chemin relatif, puis modifiez la copie. WordPress utilise alors la version de l’enfant plutôt que celle du parent.
  4. Fonctions de chemin : get_stylesheet_directory() pointe vers le thème enfant et get_template_directory() pointe vers le parent. Les confondre est une cause fréquente de fichiers introuvables.
  5. Thèmes de blocs et theme.json : dans le cas des thèmes de blocs, un enfant peut inclure son propre theme.json, qui est fusionné avec celui du parent; vous pouvez ainsi modifier une palette, des tailles de police ou une échelle d’espacement sans tout copier. Les gabarits HTML du dossier templates/ et les parties de gabarit du dossier parts/ remplacent les fichiers du parent qui portent le même nom.

Erreurs courantes avec les thèmes enfants

  • Modifier quand même le parent : créer un thème enfant, mais continuer de corriger les fichiers du parent, qui sont ensuite perdus à la prochaine mise à jour.
  • Copier trop de gabarits : remplacer des gabarits entiers pour changer une seule ligne. Les gabarits remplacés ne reçoivent plus les correctifs du parent et deviennent discrètement désuets.
  • Une mauvaise valeur Template : utiliser le nom affiché du parent au lieu du nom de son dossier, ce qui fait signaler le thème enfant comme défectueux.
  • Placer les fonctionnalités du site dans le thème : les types de contenu personnalisés, les codes courts et les intégrations placés dans un thème enfant disparaissent quand le design change. Leur place est dans une extension.
  • Croire que les modifications de l’éditeur de site vont dans l’enfant : les modifications faites dans l’éditeur de site sont enregistrées dans la base de données, et non dans les fichiers du thème, tant que vous ne les exportez pas.

Bonnes pratiques pour les thèmes enfants

  • Privilégiez les crochets aux remplacements : si le parent offre une action ou un filtre pour ce dont vous avez besoin, utilisez-le dans functions.php plutôt que de copier un gabarit.
  • Tenez une liste des gabarits remplacés : notez de quelle version du parent provient chaque remplacement et comparez-les lorsque le parent publie une mise à jour majeure.
  • Séparez la présentation des fonctionnalités : réservez le thème enfant au design et à la mise en page; déplacez la logique d’affaires dans une petite extension propre au site.
  • Testez les mises à jour du parent en préproduction : mettez d’abord le parent à jour sur une copie de préproduction, vérifiez les gabarits remplacés, puis déployez. Cette étape s’intègre naturellement à une routine d’entretien.
  • Exportez les modifications des thèmes de blocs : pour les thèmes de blocs, utilisez un outil comme l’extension Create Block Theme pour réécrire les modifications de l’éditeur de site dans les fichiers du thème enfant, afin qu’elles soient versionnées.

Quand vous n’avez pas besoin d’un thème enfant

Si vous avez écrit le thème vous-même, ou si un studio a conçu un thème sur mesure pour vous, il n’y a aucun parent à protéger : un thème enfant n’apporte donc rien. Si vous ne modifiez que du CSS et des réglages dans l’outil de personnalisation ou l’éditeur de site, ces changements sont stockés dans la base de données et survivent déjà aux mises à jour. Et si la modification est fonctionnelle plutôt que visuelle, une extension est généralement un meilleur endroit pour l’accueillir.

Les thèmes enfants chez PerfectPixels

Lorsque le site d’un client repose sur un thème commercial ou un thème cadre (framework), nous créons un thème enfant dès le premier jour, le conservons sous contrôle de version et limitons les remplacements de gabarits à ce qui est vraiment nécessaire. Lorsque nous concevons un thème sur mesure dans le cadre de nos services de développement WordPress, nous nous passons du thème enfant et plaçons plutôt les fonctionnalités du site dans une extension dédiée, afin que le design puisse évoluer plus tard sans perte de fonctionnalités.

Foire aux questions

Ai-je besoin d’un thème enfant pour ajouter du CSS personnalisé?

Pas nécessairement. Le CSS ajouté dans le panneau CSS additionnel de l’outil de personnalisation ou dans les styles de l’éditeur de site est stocké dans la base de données et survit aux mises à jour du thème. Un thème enfant devient utile dès que vous modifiez des gabarits, ajoutez du PHP ou gérez une grosse feuille de style sous contrôle de version.

Un thème enfant ralentira-t-il mon site?

Pas de façon notable s’il est bien configuré. Charger correctement les feuilles de style au lieu d’utiliser @import évite une requête bloquante supplémentaire. Ce sont les remplacements de gabarits lourds ou les scripts supplémentaires qui nuisent à la vitesse, pas le thème enfant lui-même.

Puis-je changer de thème parent plus tard?

Pas directement. Un thème enfant est lié aux gabarits, aux crochets et aux noms de classes d’un parent précis; changer de parent signifie donc généralement reconstruire l’enfant. C’est une raison de plus de garder les fonctionnalités dans une extension, où elles sont indépendantes du thème.

Ressources connexes

Pour aller plus loin : Child themes — WordPress Developer Resources.

Tous les termes

Besoin d’aide pour passer à la pratique?

Parlez au studio.

↯ Contact rapide

Une petite question?

Demandez-nous n’importe quoi : nous répondons en deux jours ouvrables.