Skip to content

Tout pour WordPress, le développement web — et plus encore

🧩 Thème enfant WordPress : un guide complet pour créer et personnaliser

🧩 Thème enfant WordPress : un guide complet pour créer et personnaliser

Vous avez installé un thème, peaufiné le site, ajusté les couleurs et les polices, ajouté quelques templates personnalisés. Puis une mise à jour du thème arrive et efface tout. Cela vous semble familier?

Un thème enfant dans WordPress est le mécanisme qui sépare vos personnalisations du code du développeur. Vous modifiez ce que vous voulez, et le thème parent se met à jour sans conséquences. Cela ressemble à de la magie, mais derrière, il n’y a qu’une seule ligne dans style.css.

Dans ce guide, du concept à un thème enfant fonctionnel: pourquoi vous en avez besoin, comment le créer manuellement, comment mettre en file d’attente les styles et le fichier functions.php, et que faire en cas de problème. Sans superflu, avec des extraits de code testés.

💡 Aperçu rapide:

  • Créez un dossier de thème enfant dans /wp-content/themes/, n’importe quel nom fonctionne, par exemple mytheme-child
  • Ajoutez style.css avec un en-tête de thème et une ligne Template: pointant vers le dossier du thème parent
  • Mettez en file d’attente les styles du parent via functions.php, en utilisant la fonction wp_enqueue_style() sur le hook wp_enqueue_scripts
  • Copiez n’importe quel fichier de template du thème parent dans le thème enfant et modifiez-le sans crainte des mises à jour
  • Tout le reste (functions.php, champs personnalisés, nouveaux templates) peut être étendu sans toucher au thème parent

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

Un thème enfant est un thème WordPress qui hérite de toutes les fonctionnalités, styles et templates d’un autre thème. Celui dont il hérite est appelé le thème parent. Un thème enfant peut à lui seul se composer d’un simple fichier style.css et fonctionner parfaitement.

Code de thème WordPress sur un écran

Le mécanisme d’héritage est simple. Lorsque WordPress charge une page, il cherche d’abord le fichier de template requis dans le thème enfant. S’il le trouve, il utilise ce fichier. S’il ne le trouve pas, il prend le fichier du thème parent. C’est pourquoi vous pouvez surcharger uniquement ce que vous voulez modifier, et tout le reste proviendra automatiquement du thème parent.

L’élément clé sans lequel un thème enfant ne peut exister est la ligne Template: dans l’en-tête de style.css. Elle pointe vers le nom du dossier du thème parent (par exemple, twentytwentyfour) et crée la relation parent-enfant. La ligne doit correspondre exactement au nom du dossier du thème parent, y compris la casse.

Le thème parent peut être N’IMPORTE QUEL thème WordPress installé, du thème par défaut Twenty Twenty-Five à un thème commercial comme Total ou Kadence. Le thème enfant «emprunte» ses fichiers et ses fonctions mais ne les copie pas physiquement.

Pourquoi vous avez besoin d’un thème enfant: 4 raisons

Vous pourriez ignorer tout cela et modifier directement le thème parent. Beaucoup de gens le font. Mais voici ce qui se passe ensuite.

Mises à jour sécurisées

Le développeur du thème parent publie une mise à jour, et vous l’installez. Si vous avez modifié directement les fichiers du thème parent, toutes les modifications sont effacées. Un thème enfant stocke vos personnalisations séparément: la mise à jour du parent n’y touche pas. Vous obtenez à la fois la nouvelle version du thème (avec les correctifs de sécurité) et vos personnalisations préservées.

Expérimentation isolée

Vous voulez essayer une nouvelle structure de template ou une astuce CSS non conventionnelle? Dans un thème enfant, vous pouvez expérimenter librement. Si quelque chose ne va pas, désactivez le thème enfant et le site revient au thème parent dans son état d’origine.

Base de code propre

Un thème enfant ne contient que vos modifications. Quelques templates, functions.php avec des hooks, style.css avec des surcharges. Pas de mélange entre le code d’origine et vos modifications. Lorsque vous devez corriger quelque chose six mois plus tard, vous ne fouillez pas dans le code de quelqu’un d’autre à la recherche du vôtre.

Démarrage rapide du développement

Un thème enfant est le bac à sable parfait pour apprendre le développement de thèmes WordPress. Vous n’écrivez pas un thème de zéro (cela prend des centaines d’heures) mais apportez des modifications ciblées à un thème déjà fonctionnel. La documentation officielle des thèmes enfants WordPress recommande précisément cette approche pour les développeurs débutants.

Quels sont les inconvénients des thèmes enfants

Il y a aussi des inconvénients. Ils ne sont pas critiques, mais les connaître à l’avance aide.

Connaissances de base en codage requises

La mise en place d’un thème enfant implique du HTML, du CSS et un peu de PHP. Si vous n’avez jamais ouvert un éditeur de code, vous devrez apprendre les bases. La bonne nouvelle: pour les tâches courantes (mise en file d’attente des styles, ajout d’un hook), le code est déjà écrit; il vous suffit de le copier et de substituer vos propres valeurs.

Migration des paramètres du personnalisateur

Certains thèmes lient les paramètres du personnalisateur (couleurs, polices, mise en page) au nom du thème actif. Lors du passage à un thème enfant, ces paramètres «disparaissent». Ils ne sont pas perdus; ils restent dans la base de données, liés au nom du thème parent. La solution: avant d’activer le thème enfant, exportez les paramètres du personnalisateur (de nombreux thèmes, comme Total, fournissent un outil d’import/export intégré), ou transférez-les manuellement après l’activation.

Dépendance au thème parent

Un thème enfant sans son parent n’est qu’un dossier avec des fichiers. Si vous décidez de changer complètement de thème, vous devrez créer un nouveau thème enfant à partir de zéro. Les fonctions intégrées dans le functions.php du thème enfant peuvent être liées à des hooks spécifiques à un thème parent particulier et devront également être adaptées.

Comment créer un thème enfant manuellement

Le chemin le plus direct, sans plugins, en utilisant uniquement vos mains. Vous aurez besoin d’un accès aux fichiers de votre site (FTP, gestionnaire de fichiers de votre hébergement ou cPanel) et d’un éditeur de texte.

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

Ouvrez le répertoire des thèmes WordPress: /wp-content/themes/. Créez un nouveau dossier. N’importe quel nom fonctionne, mais la convention est d’ajouter le suffixe -child au nom du thème parent: par exemple, pour twentytwentyfive, le dossier enfant serait twentytwentyfive-child.

Pour travailler avec des fichiers via FTP, FileZilla fonctionne bien. Via l’hébergement, utilisez le gestionnaire de fichiers intégré dans cPanel ou votre panneau d’hébergement.

Étape 2. Créer style.css avec l’en-tête du thème

Dans le dossier du thème enfant, créez un fichier nommé style.css. C’est le seul fichier obligatoire. Collez l’en-tête du thème:

1/*
2Theme Name: Twenty Twenty-Five Child
3Theme URI: https://example.com/
4Description: Child theme for Twenty Twenty-Five
5Author: Your Name
6Template: twentytwentyfive
7Version: 1.0.0
8*/

La ligne Template: est celle qui lie le thème enfant au parent. La valeur doit correspondre EXACTEMENT au nom du dossier du thème parent. Pour Twenty Twenty-Five, le dossier est nommé twentytwentyfive, c’est donc exactement ce que vous écrivez. Une faute de frappe ou une mauvaise casse signifie que le thème ne sera pas reconnu comme thème enfant.

Étape 3. Mettre en file d’attente les styles du thème parent

À ce stade, le thème enfant fonctionne déjà; vous pouvez l’activer dans Apparence → Thèmes. Mais le site apparaîtra sans styles car votre style.css est encore vide (à l’exception de l’en-tête).

Créez un fichier nommé functions.php dans le dossier du thème enfant et ajoutez le code pour la mise en file d’attente des styles du parent:

1add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
2
3function my_theme_enqueue_styles() {
4 $theme = wp_get_theme( 'twentytwentyfive' );
5 $version = $theme->get( 'Version' );
6
7 wp_enqueue_style(
8 'parent-style',
9 get_template_directory_uri() . '/style.css',
10 array(),
11 $version
12 );
13}

Ce code récupère dynamiquement la version du thème parent et l’ajoute comme paramètre à l’URL de la feuille de style. Lorsque le thème se met à jour, la version change, le navigateur vide son cache et les utilisateurs voient les styles actuels sans problèmes de CSS.

Remplacez twentytwentyfive par le nom de votre thème parent. Utilisez wp_get_theme() plutôt qu’un numéro de version codé en dur; cela vous protège des problèmes de cache lors des mises à jour.

Fichiers de code et de thème enfant

Étape 4. Activer le thème enfant

Dans l’administration WordPress: Apparence → Thèmes → trouvez votre thème enfant nouvellement créé → Activer. L’apparence du site ne changera pas; c’est normal. Vous êtes sur le thème enfant, et il fonctionne.

Comment personnaliser un thème enfant

Le thème est activé; passons à la personnalisation. Voici ce que vous pouvez et devez faire.

Ajouter vos propres styles

Écrivez toutes vos règles CSS DANS le fichier style.css du thème enfant, après la section d’en-tête. Elles remplaceront automatiquement les styles du thème parent ayant la même spécificité. Si vous voulez changer la couleur des titres, écrivez la règle dans le style.css enfant, et elle s’appliquera.

Modifier les fichiers de template

Vous voulez changer la structure de single.php ou footer.php? Copiez le fichier souhaité du thème parent dans le dossier du thème enfant, en préservant la même structure de sous-dossiers (par exemple, /template-parts/). Modifiez la copie dans le thème enfant; lorsque WordPress chargera, il utilisera votre version plutôt que l’original du parent.

Détail important: vous ne pouvez copier que les FICHIERS DE TEMPLATE (ceux situés dans le dossier racine du thème et le dossier template-parts/). Les fichiers des sous-dossiers comme inc/, functions/ et classes/ ne sont pas copiés de cette manière. Pour modifier la logique de ces fichiers, utilisez les hooks et filtres WordPress.

Étendre via functions.php

Le functions.php du thème enfant se charge AVANT celui du parent. Cela signifie que vous pouvez:

  • Ajouter de nouvelles fonctions sans toucher au functions.php du parent;
  • Surcharger les fonctions du parent uniquement si elles sont encapsulées dans if ( ! function_exists() );
  • Ajouter de nouveaux hooks et filtres pour modifier le comportement du thème parent ou de WordPress lui-même.

Exemple: autoriser les téléversements SVG via le functions.php enfant:

1function my_child_allow_svg( $mimes ) {
2 $mimes['svg'] = 'image/svg+xml';
3 return $mimes;
4}
5add_filter( 'upload_mimes', 'my_child_allow_svg' );

Ne copiez jamais l’INTÉGRALITÉ du functions.php du thème parent dans le thème enfant. Cela provoquera une erreur fatale en raison de fonctions redéclarées. Le functions.php enfant étend celui du parent; il ne le remplace pas.

Ajouter de nouveaux fichiers de template

Un thème enfant peut contenir des templates qui n’existent pas dans le parent. Par exemple, vous pouvez créer template-full-width.php pour les pages sans barre latérale, et WordPress le détectera dans le thème enfant et le proposera comme option lors de l’édition d’une page.

Outils et éditeurs de texte

N’importe quel éditeur fonctionne pour le code d’un thème enfant, mais la coloration syntaxique facilite les choses. Voici quelques options:

  • VS Code: gratuit, avec des extensions pour PHP et WordPress;
  • Notepad++: un éditeur léger pour Windows qui gère CSS/PHP/JS;
  • Sublime Text: rapide et minimaliste, payant après la période d’essai.

Pour accéder aux fichiers via FTP, utilisez le client FTP FileZilla. Pour les utilisateurs d’hébergement, le gestionnaire de fichiers intégré de cPanel est parfaitement adéquat pour créer quelques fichiers.

Développeur travaillant sur un site WordPress

Erreurs courantes et comment les corriger

Au fil des années de travail avec les thèmes enfants, nous avons compilé une liste des pierres d’achoppement les plus fréquentes.

«Le thème enfant n’est pas reconnu.» Presque toujours, il s’agit d’une erreur dans la ligne Template:. Vérifiez que le nom du dossier du thème parent correspond caractère par caractère, y compris la casse et les tirets. TwentyTwentyFive et twentytwentyfive sont des noms différents.

«Le site affiche du HTML brut sans styles.» Le thème enfant est activé mais les styles ne sont pas mis en file d’attente. Ajoutez wp_enqueue_style() dans le functions.php du thème enfant (voir Étape 3).

«Erreur PHP fatale après l’activation.» Très probablement, vous avez copié le functions.php du thème parent dans l’enfant et maintenant les fonctions sont déclarées deux fois. Supprimez les doublons du functions.php enfant; ne conservez que VOS fonctions.

«Les paramètres du personnalisateur ont disparu.» Ils sont liés au nom du thème. Revenez temporairement au parent, exportez les paramètres (via un plugin ou l’outil intégré du thème), puis activez l’enfant et importez-les.

«La mise à jour du thème parent a cassé la mise en page.» Le développeur a modifié la structure HTML d’un template que vous aviez copié dans le thème enfant. Votre copie est maintenant incompatible avec les nouveaux styles. Solution: comparez le nouveau template parent avec votre copie et adaptez les modifications.

Vidéo étape par étape (EN) sur la création d’un thème enfant: de la création du dossier à l’activation finale et à la configuration des styles. Chaîne WPEstate, 2025, claire et sans remplissage.

⁉️🤔 Foire aux questions

Dois-je créer un thème enfant pour chaque site WordPress?

Non. Si vous ne modifiez pas les fichiers du thème et n’ajoutez pas de code personnalisé, vous n’avez pas besoin d’un thème enfant. Mais si vous avez déjà ouvert l’éditeur de thème dans l’administration, ajouté du CSS dans CSS additionnel et prévoyez de modifier des templates, créez un thème enfant. Cela prend 10 minutes maintenant et vous fait gagner des heures lors de la prochaine mise à jour.

Que se passe-t-il si je supprime le thème parent mais conserve le thème enfant?

Le site plantera avec une erreur critique. Un thème enfant sans son parent ne fonctionne pas; il ne contient pas un ensemble complet de fichiers et hérite de tout du parent. Avant de supprimer le thème parent, supprimez d’abord (ou désactivez) le thème enfant et activez un thème différent.

Puis-je créer un thème «petit-enfant», un enfant d’un enfant?

Non. WordPress ne prend en charge qu’un seul niveau d’héritage: parent → enfant. Pour les personnalisations complexes qui ne tiennent pas dans un seul thème enfant, l’approche appropriée est de forker le thème et de créer un thème parent complet, ou de déplacer la logique dans un plugin séparé.

Un thème enfant fonctionne-t-il avec les thèmes de blocs (FSE, Édition complète du site)?

Oui, mais le mécanisme diffère légèrement. Dans les thèmes de blocs, le theme.json du thème enfant est fusionné avec celui du parent plutôt que de le remplacer. Les templates et les parties de template sont surchargés de la même manière: en créant un fichier portant le même nom dans le thème enfant. Plus de détails sont disponibles dans la documentation officielle des ressources pour développeurs sur wordpress.org.

Comment transférer les personnalisations déjà faites dans le thème parent vers le thème enfant?

Identifiez ce que vous avez modifié: CSS, templates ou functions.php. Copiez les règles CSS dans le style.css enfant. Pour les templates modifiés, copiez les fichiers dans le thème enfant et conservez vos modifications à cet endroit. Transférez le code du functions.php du parent de manière sélective: uniquement vos fonctions, pas le fichier entier. Après le transfert, supprimez vos modifications du thème parent; sinon, elles seront perdues lors de la prochaine mise à jour.

Devriez-vous créer un thème enfant dès maintenant

Si vous avez lu jusqu’ici, la réponse est probablement oui. Un thème enfant ne complique pas le site et ne le ralentit pas. Il sépare votre code de celui du développeur du thème. C’est comme commenter le code: au début, cela semble inutile, mais un mois plus tard, cela vous sauve.

Pour ceux qui éditent un thème pour la première fois: commencez par un bac à sable. Un serveur local (LocalWP, XAMPP) ou un site de staging sur votre hébergement. Créez un thème enfant en suivant les étapes ci-dessus, ajoutez quelques règles CSS, copiez un template. Lorsque vous voyez que tout fonctionne, répétez l’opération sur votre site en production.

La question n’est pas de savoir si vous avez besoin d’un thème enfant. La question est de savoir quand vous vous en souviendrez: avant la mise à jour du thème ou après que vos personnalisations ont disparu.