Créer un thème enfant WordPress (avec ou sans plugin)


Vous avez sûrement déjà eu envie de personnaliser certains éléments de votre thème WordPress sans pouvoir le faire facilement depuis l’administration. Changer une police d’écriture, des couleurs, ajouter des fonctions… Parfois, pas d’autre choix que de modifier le code. Le problème, c’est qu’en modifiant directement un thème, vous prenez le risque de tout perdre lors de la prochaine mise à jour. Un thème enfant permet justement d’hériter de toutes les caractéristiques du thème parent (design, fonctionnalités, mise en page) mais d’y apporter vos propres modifications sans toucher aux fichiers du thème parent. Elles sont ainsi conservées en toute sécurité.

Pour prendre une comparaison simple, c’est un peu comme un relooking : on part de la même base, du même corps avec ses caractéristiques… mais grâce à de nouvelles tenues, une nouvelle coupe de cheveux ou du maquillage, on lui donne une apparence renouvelée !

Dans cet article, je vais vous expliquer plus en détails à quoi sert un thème enfant sur WordPress et comment en créer un, sans plugin ou avec une extension. 

Ce qu’il faut retenir

  • Un thème enfant WordPress permet de personnaliser un thème sans modifier ses fichiers d’origine.
  • Il est indispensable si vous touchez au code (CSS, templates, fonctions PHP), car vos modifications seraient écrasées à la prochaine mise à jour du thème parent.
  • Créer un thème enfant ne demande que deux fichiers : style.css et functions.php.
  • Vous pouvez le créer à la main ou utiliser une extension comme Child Theme Configurator si vous débutez.
  • Inutile d’en créer un si vous utilisez uniquement le Customizer ou un constructeur de pages.
  • L’IA (ChatGPT, Codeium…) peut vous aider à écrire ou adapter le code sans connaissances techniques.

Pourquoi créer un thème enfant WordPress ?

Préserver les modifications lors des mises à jour

Lorsque vous achetez un thème WordPress auprès d’un développeur, il est en général mis à jour régulièrement, que ce soit pour résoudre des bugs signalés par les utilisateurs, pour apporter de nouvelles fonctionnalités ou pour améliorer la sécurité en suivant les dernières “bonnes pratiques” en date.

Si vous effectuez des modifications directement sur ce thème, cela signifie qu’elles risquent d’être effacées lors de la prochaine mise à jour si celle-ci écrase les fichiers que vous avez modifiés. Vous vous retrouvez alors à devoir faire un compromis hasardeux entre personnalisation et sécurité.

Avec un thème enfant, on peut bénéficier de toutes les améliorations du thème parent tout en ayant la liberté de modifier le code comme on le souhaite.

Garder une grande liberté de personnalisation

Un thème enfant permet de séparer proprement le code original de ses modifications. On garde ainsi une base saine, avec une séparation claire entre ce qui relève du thème d’origine et ce qui relève de nos personnalisations.

Vous pouvez ainsi modifier les fichiers de votre choix (header.php, footer.php, single.php, etc.), sans toucher au reste du thème. WordPress utilisera toujours en priorité les fichiers présents dans le thème enfant. Cela vous permet d’ajouter vos propres règles CSS, de modifier les couleurs, les polices, la mise en page, de masquer certains éléments ou encore d’ajouter des fonctionnalités spécifiques — comme un menu, une sidebar ou un shortcode. Et le tout s’effectue sans avoir besoin de multiplier les plugins !

Expérimenter sans risque sur un site de test

Un thème enfant est particulièrement utile lors de tests ou de développements sur un site de test (ou staging). Il permet de ne pas toucher aux fichiers du thème parent et limite les erreurs humaines, comme écraser un fichier par inadvertance lors de la mise en production, ou oublier ce que l’on a modifié exactement.

On peut organiser proprement ses modifications, les mettre en production facilement (on peut exporter ce thème, le transférer sur un autre site ayant le même thème parent…). Ca permet d’avoir un socle réutilisable, qui est en plus compatible avec Git et les outils de versioning (on peut conserver une trace des différentes modifications apportées via une sauvegarde des versions du thème enfant et ainsi revenir en arrière facilement si besoin).

Par ailleurs, même en production, s’il y a la moindre erreur liée au thème enfant, il suffit de le désactiver pour avoir quand même un site fonctionnel (grâce au thème parent), certes sans la surcouche de personnalisation mais en ligne !

Faciliter la maintenance et la reprise d’un projet

Un thème enfant offre une meilleure lisibilité du code et une séparation nette entre le socle d’origine (le thème parent) et vos personnalisations. Cela facilite la maintenance à long terme : vous savez exactement ce qui a été ajouté ou modifié, sans devoir fouiller dans tous les fichiers.

C’est aussi un vrai gain de temps si vous travaillez sur plusieurs sites basés sur le même thème : vous pouvez conserver un thème parent commun et créer un thème enfant spécifique à chaque projet, avec ses propres règles CSS, templates ou fonctions. En cas de reprise par un tiers, cela simplifie considérablement la compréhension et l’évolution du site.

Pourquoi et comment créer un thème enfant sur WordPress ?
Pourquoi et comment créer un thème enfant sur WordPress ?

Ces cas où il n’est pas nécessaire de créer un thème enfant

Créer un thème enfant sur WordPress est très utile… mais pas toujours indispensable. Dans certains cas, il est parfaitement possible de s’en passer.

Vous ne prévoyez pas de modifier le code

Si vous utilisez un thème tel quel, sans toucher aux fichiers ni au CSS, alors un thème enfant ne vous apportera aucun bénéfice.

Vous faites toutes vos personnalisations via le Customizer ou un builder

Selon le thème parent choisi, on dispose parfois de nombreuses options de personnalisation via l’outil Personnaliser (le “Customizer”) : couleurs, polices, mise en page… Ces réglages sont stockés dans la base de données, pas dans les fichiers du thème. Ils ne sont pas effacés lors d’une mise à jour, donc vous pouvez les utiliser en toute sécurité sans créer de thème enfant.

De même, si vous utilisez un constructeur de pages comme Elementor, Divi, Beaver Builder ou WPBakery, la plupart des modifications sont faites visuellement, sans écrire une ligne de code. Dans ce cas, un thème enfant est rarement utile, sauf si vous ajoutez du code personnalisé.

Vous utilisez un thème Full Site Editing (FSE)

Depuis la version 5.9 de WordPress, il existe des thèmes WordPress dits “Full Site Editing” (ou FSE), qui fonctionnent différemment des thèmes classiques. Avec ces thèmes, vous pouvez modifier toute la structure du site (en-tête, pied de page, pages…) directement dans l’éditeur WordPress, sans avoir besoin de toucher au code.

Dans ce cas, un thème enfant est moins utile car :

  • La plupart des personnalisations se font visuellement, dans l’interface de WordPress ;
  • Les changements sont enregistrés dans la base de données ou dans un fichier spécial appelé theme.json (et non dans des fichiers comme header.php ou style.css).

Si vous souhaitez conserver vos modifications ou les réutiliser ailleurs, il est souvent plus simple soit d’exporter vos modèles (templates) depuis l’éditeur,, soit d’utiliser une variation de style (un fichier qui change les couleurs, la typo, etc. sans créer de thème enfant).

Cela ne veut pas dire qu’on ne peut pas créer de thème enfant avec un thème FSE, mais la démarche est différente, un peu plus technique, et souvent inutile pour des besoins simples.

Quand un thème enfant est inutile sur WordPress
Quand un thème enfant est inutile sur WordPress

Comment créer un thème enfant WordPress à la main

Même s’il faut mettre (un peu) les mains dans le cambouis pour créer un thème enfant sur WordPress, il n’est pas nécessaire d’être développeur pour autant ! Il suffit de deux outils simples pour démarrer : un éditeur de texte (comme Notepad++) et un client FTP comme FileZilla pour accéder au serveur où est stocké votre site WordPress. Voici les étapes à suivre pour créer un thème enfant sans plugin.

1. Créer le dossier du thème enfant

Connectez-vous au serveur puis rendez-vous dans le dossier suivant sur votre hébergement : wp-content > themes. Il contient déjà le dossier du thème que vous utilisez, par exemple “yolo”… et peut-être quelques thèmes WordPress par défaut.

Créez-y un nouveau dossier pour votre thème enfant. Donnez-lui un nom clair, sans accent ni espace, par exemple : yolo-theme-enfant.

2. Créer le fichier style.css

Avec votre éditeur de texte, créez un fichier nommé style.css et collez-y ce contenu de base, en personnalisant les lignes si besoin (le nom du thème est purement descriptif, pour vous aider à vous y retrouver) :

/*Theme Name: Thème enfant de Yolo
Template: yolo
Version: 1.0*/

Mettez ce fichier dans le dossier yolo-theme-enfant fraîchement créé.

La ligne Template doit correspondre au nom exact du dossier du thème parent, sinon WordPress ne fera pas le lien.

Vous pouvez ajouter d’autres lignes (author, description, etc.), mais ce n’est pas obligatoire pour que cela fonctionne.

3. Créer le fichier functions.php

Créez ensuite un fichier nommé functions.php, que vous allez placer dans le même dossier. Il va servir à charger les styles du thème parent.

Voici le code minimal à y insérer :

add_action( 'wp_enqueue_scripts', 'yolo_theme_enfant_styles' );function yolo_theme_enfant_styles() {wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );}

Ce code demande à WordPress d’aller récupérer les styles du thème parent dans le dossier de celui-ci et de les utiliser.

4. Activer le thème enfant

Une fois les deux fichiers de base créés, rendez-vous dans votre interface WordPress > Apparence > Thèmes. Vous verrez apparaître votre thème enfant : il ne reste plus qu’à l’activer.

Votre site continuera de fonctionner comme avant, mais vous aurez maintenant un environnement propre pour personnaliser l’apparence ou le code sans toucher au thème d’origine.

5. Comprendre le principe d’héritage

Le thème enfant ne contient au départ que deux fichiers, mais il hérite automatiquement de tous les fichiers du thème parent. Cela signifie que si vous ne modifiez rien, votre site affichera exactement la même chose qu’avec le thème d’origine.

Dès que vous ajoutez un fichier dans le thème enfant (par exemple header.php), WordPress utilisera celui-ci à la place de celui du thème parent. C’est cette logique d’héritage qui rend le thème enfant si puissant : vous ne copiez et ne modifiez que ce dont vous avez besoin, tout le reste est automatiquement récupéré dans le thème d’origine.

Si vous souhaitez personnaliser un fichier sans savoir coder, sachez que l’intelligence artificielle peut aujourd’hui vous aider. Par exemple, vous pouvez copier le contenu du fichier header.php et demander à une IA comme ChatGPT ou Codeium de modifier une zone précise, comme ajouter une image, changer le titre ou déplacer un menu. Il suffit d’expliquer en langage naturel ce que vous voulez.

Il faudra parfois tester plusieurs formulations ou ajuster légèrement le code obtenu, mais cela reste une solution accessible et efficace pour personnaliser un thème sans maîtriser le codage.

Création d'un thème enfant sur WordPress

Utiliser une extension : Child Theme Configurator

Si vous n’êtes pas à l’aise avec la création de fichiers manuellement, vous pouvez utiliser une extension comme Child Theme Configurator. Elle permet de générer automatiquement un thème enfant à partir du thème parent de votre choix, directement depuis l’interface WordPress.

C’est une solution pratique pour les débutants : l’extension se charge de créer les fichiers nécessaires, de configurer le lien avec le thème parent et même d’ajouter les premières personnalisations CSS. Il n’est pas nécessaire de toucher au code.

Néanmoins, cette solution n’est pas indispensable. Créer un thème enfant à la main reste simple et vous donne plus de contrôle sur la structure du thème. Par ailleurs, si vous utilisez Child Theme Configurator, il est recommandé de retirer le plugin une fois votre thème enfant créé : l’extension ne sera plus utile au quotidien, et cela allègera un peu votre site.

Notez enfin que l’extension n’est pas traduite en français et qu’elle n’est plus activement mise à jour aussi régulièrement qu’auparavant. Pour des besoins ponctuels, elle reste fiable, mais pour aller plus loin dans la personnalisation, mieux vaut comprendre comment fonctionne un thème enfant “sous le capot”.

Encore une fois, à l’ère de l’IA, vous pouvez utiliser n’importe quel chatbot comme ChatGPT pour coder à votre place ce que vous ne savez pas faire… et même pour résoudre des bugs (par exemple, en lui montrant une capture d’écran d’un affichage problématique et en lui demandant ce qu’il faut modifier dans le code pour corriger un décalage, une erreur…).

Et avec Gutenberg ou les thèmes FSE ?

Je vous l’ai expliqué précédemment… mais depuis l’arrivée de l’éditeur de site complet (Full Site Editing ou FSE) avec WordPress 5.9, et surtout avec WordPress 6.1+, certains thèmes fonctionnent différemment des thèmes classiques. Ces nouveaux thèmes reposent sur un fichier de configuration theme.json et utilisent des blocs pour tout : en-tête, pied de page, modèles de page, etc.

Dans ce contexte, le thème enfant fonctionne encore, mais sa création est un peu différente. Au lieu de modifier des fichiers comme functions.php ou style.css, on va souvent personnaliser ou surcharger le fichier theme.json du thème parent. Ce fichier contrôle les couleurs, les polices, les espacements, etc.

Pour personnaliser un thème FSE, on peut aussi utiliser les style variations : ce sont des déclinaisons visuelles du thème (par exemple une version claire et une version sombre), accessibles directement depuis l’interface WordPress sans avoir besoin de créer un thème enfant.

En résumé, les thèmes FSE permettent beaucoup de personnalisations sans coder, et l’utilisation d’un thème enfant n’est plus systématiquement nécessaire. Si vous êtes à l’aise avec la structure theme.json, vous pouvez tout de même créer un thème enfant FSE, mais pour de simples modifications visuelles, les outils intégrés à WordPress suffisent souvent.

Personnaliser son thème enfant sur WordPress

Une fois votre thème enfant activé, vous pouvez commencer à le personnaliser selon vos besoins. Voici trois types de modifications courantes que vous pouvez y apporter.

Ajouter vos propres règles CSS

C’est la manière la plus simple de personnaliser un thème : changer les couleurs, la taille des titres, l’espacement entre les éléments… 

Il vous suffit d’ouvrir le fichier style.css du thème enfant et d’y ajouter vos règles CSS. Ces règles viendront s’ajouter à celles du thème parent et prendront le dessus sur celles définies dans le thème parent.

Surcharger un template du thème parent

Vous pouvez modifier l’apparence ou le contenu d’une page spécifique (article, page d’archive, etc.) en copiant le fichier correspondant du thème parent dans le thème enfant, puis en le modifiant.

WordPress utilisera toujours le fichier présent dans le thème enfant en priorité.

Ajouter des fonctions personnalisées

Le fichier functions.php du thème enfant vous permet d’ajouter des fonctionnalités spécifiques à votre site, sans modifier celui du thème parent.

Vous pouvez aussi utiliser ce fichier pour :

  • Créer un shortcode,
  • Enregistrer un menu supplémentaire,
  • Désactiver un widget natif,
  • Charger un fichier JavaScript personnalisé, etc.

Chaque ajout dans le fichier functions.php du thème enfant s’appliquera sans affecter celui du thème parent.

Codage d'un thème WordPress
Codage d’un thème WordPress

Problèmes courants avec les thèmes enfants

Même si le principe de base de création d’un thème enfant est simple, ça reste du code… et évidemment, ça va parfois de pair avec quelques déconvenues techniques, bugs et autres “ça devrait marcher mais ça ne marche pas”. On est tous passés par là ! Je vous propose donc de terminer cet article par un tour d’horizon de problèmes courants liés aux thèmes enfants.

Le thème enfant n’apparaît pas dans l’administration

Cela signifie souvent qu’il manque une information essentielle dans le fichier style.css du thème enfant. En particulier, la ligne Template: doit contenir le nom exact du dossier du thème parent.

Le thème enfant s’affiche mal ou casse le design du site

Cela arrive si les styles du thème parent ne sont pas correctement chargés dans le fichier functions.php du thème enfant.

Solution : vérifiez que ce fichier contient bien le code suivant (en remplaçant “yolo” par le nom de votre thème) :

add_action( 'wp_enqueue_scripts', 'yolo_theme_enfant_styles' );function yolo_theme_enfant_styles() {    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );}

Le nom du thème parent est mal renseigné dans le style.css

Le champ Template: est sensible à la casse et ne doit contenir que le nom du dossier, pas un nom “marketing” ou “stylisé”.

Solution : allez dans wp-content/themes, notez le nom exact du dossier du thème parent (ex. : avada) et reportez-le fidèlement dans la ligne Template: de votre style.css.

Fichier mal placé ou erreur de nommage dans le dossier du thème enfant

Si les fichiers comme functions.php ou style.css sont dans un mauvais sous-dossier ou nommés différemment (ex. function.php sans “s”), WordPress ne les prendra pas en compte.

Solution : vérifiez que tous les fichiers sont placés à la racine du dossier du thème enfant, et qu’ils sont correctement nommés.

 

Conflit entre une fonction du thème parent et une fonction du thème enfant

Si vous créez une fonction dans le thème enfant qui porte exactement le même nom qu’une fonction du thème parent, cela peut générer une erreur « Function already declared ».

Solution : soit vous changez le nom de votre fonction dans le thème enfant, soit vous utilisez function_exists() pour ne pas la redéclarer si elle existe déjà.

Problèmes avec les thèmes enfant WordPress
Problèmes avec les thèmes enfant WordPress

Fichier copié dans le thème enfant mais non pris en compte

WordPress ne surcharge que certains types de fichiers. Si vous copiez un fichier qui n’est pas un template (comme un fichier JavaScript personnalisé), il ne sera pas automatiquement pris en compte.

Solution : pour que vos fichiers JS/CSS soient utilisés, il faut les appeler depuis le fichier functions.php via wp_enqueue_script() ou wp_enqueue_style().

Modification du template sans comprendre la structure du thème parent

On peut se perdre en copiant/modifiant des fichiers sans comprendre leur fonction (ex : copier archive.php alors que le thème utilise content-archive.php inclus ailleurs).

Solution : consultez la documentation du thème parent, ou explorez sa structure avec un éditeur de code pour comprendre comment il est construit.

 

Erreur de syntaxe dans le functions.php du thème enfant

Une simple faute de frappe dans votre fichier functions.php peut générer une “erreur fatale” et bloquer l’accès à votre site.

Solution : éditez toujours ce fichier via un éditeur de code fiable, et ouvrez-le via FTP pour corriger en cas de plantage. N’hésitez pas à tester le code sur un site de test au préalable.

Thème enfant activé, mais les changements n’apparaissent pas

Parfois, vous activez le thème enfant mais vos modifications ne semblent pas appliquées : couleurs inchangées, menus absents, etc.

Solution : assurez-vous que vous modifiez les bons fichiers, que le cache du navigateur est vidé, et que vous avez bien activé le thème enfant (et non réactivé accidentellement le thème parent).

Problèmes de cache qui empêchent de voir les modifications

Des systèmes de cache (plugins, navigateur, serveur) peuvent vous empêcher de voir vos changements immédiatement.

Solution : videz le cache de votre navigateur, désactivez temporairement les plugins de cache, et videz le cache serveur si votre hébergeur en utilise un.

Problèmes courants avec les thèmes enfant WordPress
Problèmes courants avec les thèmes enfant WordPress

Questions fréquentes sur les thèmes enfants

Peut-on créer un thème enfant pour un thème payant ?

Oui, la plupart des thèmes premium sont parfaitement compatibles avec les thèmes enfants. Il suffit de connaître le nom exact du dossier du thème parent pour le renseigner dans le fichier style.css du thème enfant. Attention toutefois : certains thèmes premium très personnalisés ou basés sur un constructeur peuvent avoir une structure complexe. Dans ce cas, consultez la documentation du thème ou le support avant de vous lancer.

Que faire si le thème parent change complètement ?

Si le développeur du thème parent publie une mise à jour majeure (changement de structure, de logique de templates, etc.), il est possible que votre thème enfant devienne partiellement incompatible. Certaines surcharges de fichiers ou de fonctions peuvent ne plus fonctionner correctement.

Solution : testez toujours les mises à jour sur un site de test avant de les appliquer en production, et comparez les fichiers modifiés pour adapter votre thème enfant si besoin.

Peut-on supprimer un thème enfant et comment procéder ?

Oui. Il suffit de réactiver le thème parent dans Apparence > Thèmes, puis de supprimer le dossier du thème enfant en se connectant au serveur avec un client FTP et en allant dans wp-content/themes. Attention : toutes les personnalisations faites dans le thème enfant seront alors perdues. Pensez à les sauvegarder ou à les migrer si vous souhaitez les conserver.

Que devient le thème enfant si on change de thème parent ?

Un thème enfant dépend d’un thème parent spécifique. Si vous changez de thème parent (par exemple, vous passez de Avada à Enfold), le thème enfant associé à Avada ne fonctionnera plus. Vous devrez alors créer un nouveau thème enfant basé sur le nouveau thème parent choisi.

Un thème enfant ralentit-il mon site ?

Non, l’impact sur les performances est négligeable. WordPress charge les fichiers du thème enfant et du thème parent de manière optimisée. À moins d’ajouter du code lourd ou mal optimisé dans le thème enfant, il n’y a aucune raison que cela ralentisse votre site.

Doit-on mettre à jour un thème enfant ?

Un thème enfant ne se met pas à jour automatiquement. Vous êtes seul responsable de ses modifications et de leur évolution. La seule chose à surveiller, c’est la compatibilité avec les évolutions du thème parent ou de WordPress.

Comment revenir au thème parent sans perdre le site ?

Changer de thème (parent ou enfant) ne supprime jamais vos contenus (pages, articles, médias…). En revanche, vous pouvez perdre des éléments de mise en page ou de style. Il suffit d’aller dans Apparence > Thèmes et de réactiver le thème parent. Pour éviter toute mauvaise surprise, faites un test sur un site de préproduction avant de changer quoi que ce soit sur le site en ligne.

Peut-on exporter son thème enfant pour l’utiliser sur un autre site ?

Oui. Il suffit de copier le dossier du thème enfant situé dans wp-content/themes et de l’envoyer vers le dossier themes de votre second site. Assurez-vous simplement que le thème parent est également installé sur le nouveau site, sinon le thème enfant ne fonctionnera pas.

J’espère que tous ces conseils vous aideront à mieux comprendre le fonctionnement des thèmes enfants WordPress, et à tirer parti de cette fonctionnalité pour personnaliser votre site en toute sécurité.

Avant de vous lancer, voici quelques bonnes pratiques à garder en tête pour éviter les mauvaises surprises :

  • Faites toujours une sauvegarde de votre site avant de modifier des fichiers, surtout en production.
  • Utilisez un environnement de test (en local ou en ligne) pour expérimenter vos modifications avant de les appliquer en ligne. Vous pouvez en mettre un en place assez facilement avec WP Staging par exemple.
  • Documentez vos modifications : gardez une trace des fichiers modifiés, des fonctions ajoutées et des objectifs visés. Cela vous fera gagner un temps précieux si vous revenez sur le projet plus tard (ou si quelqu’un d’autre le reprend).



Source link