Si vous avez déjà personnalisé votre thème et vu une mise à jour effacer toutes vos modifications, vous savez pourquoi le thème enfant WordPress (ou thème enfant). Un thème enfant est un thème qui hérite de tout le design et la fonctionnalité d'un autre thème (le parent) et vous permet de modifier uniquement ce que vous voulez changer : quelques styles, un modèle, quelques fonctions. L'intérêt de l'invention est que vos modifications vivent dans un dossier séparé, de sorte que lorsque le thème parent est mis à jour (et il doit l'être, pour la sécurité et la compatibilité), vos personnalisations restent intactes. C'est le mécanisme officiel de WordPress pour personnaliser les thèmes tiers, et le créer coûte littéralement deux fichiers et cinq minutes. Dans ce guide, nous verrons ce qu'est exactement un thème enfant, quand vous en avez vraiment besoin (et quand non), comment le créer étape par étape avec le code complet, comment fonctionne la hiérarchie des modèles qui le rend possible et les erreurs typiques à éviter dès le début.
Qu'est-ce qu'un thème enfant et comment fonctionne l'héritage
Un thème enfant est un dossier dans wp-content/themes qui déclare, par une ligne dans sa feuille de style, que son parent est un autre thème installé. À partir de cette déclaration, WordPress applique une règle simple et puissante :
- Pour les modèles PHP : si le fichier existe dans l'enfant, celui de l'enfant est utilisé ; sinon, celui du parent est utilisé. Copier
header.phpdu parent à l'enfant et le modifier là remplace l'en-tête sans toucher à l'original. - Pour les styles et les fonctions : ne sont pas remplacés, ils s'ajoutent. Le
functions.phpde l'enfant est chargé de plus du parent (et avant), et le CSS de l'enfant est mis en file d'attente avec celui du parent pour écraser des règles spécifiques.
Le résultat pratique : le thème parent reste le moteur (et peut être mis à jour normalement), tandis que l'enfant agit comme une fine couche avec vos différences. Mettre à jour le parent ne touche jamais le dossier de l'enfant, de sorte que vos modifications survivent à toute mise à jour.
Quand avez-vous besoin d'un thème enfant (et quand non)
Toute personnalisation ne justifie pas un thème enfant. La ligne de démarcation est claire :
Oui, vous avez besoin d'un thème enfant si…
- Vous allez modifier les fichiers du thème: des modèles PHP, ou du CSS au-delà de quelques ajustements.
- Vous voulez ajouter des fonctions liées au design (enregistrer un menu supplémentaire, une zone de widgets, des tailles d'image).
- Vous maintenez des sites web clients où les mises à jour doivent pouvoir être appliquées sans crainte.
Vous n'en avez pas besoin si…
- Vous voulez seulement quelques retouches CSS: el campo “CSS adicional” del personalizador (o de los estilos globales en temas de bloques) los guarda en la base de datos, a salvo de actualizaciones.
- Votre changement est pure fonctionnalité (un shortcode, un réglage WooCommerce, un snippet de suivi) : cela appartient à un plugin ou à un gestionnaire de snippets comme WPCode, car il doit aussi survivre à un changement de thème.
- Vous utilisez un thème de blocs moderne et toutes vos modifications tiennent dans l'éditeur de site : les modifications effectuées là sont déjà enregistrées dans la base de données.
La règle d'or : le design qui touche les fichiers du thème, au thème enfant ; la fonctionnalité indépendante du design, à un plugin. Et si vous êtes encore en train de choisir un thème, faites-le en pensant aussi à ceci : un bon thème bien maintenu mérite le petit investissement de lui créer un enfant avant de le personnaliser. Dans notre guide sur 65. comment choisir le thème parfait pour votre site WordPress nous passons en revue les signes qui distinguent un thème solide.
Comment créer un thème enfant WordPress étape par étape
Nous allons créer un thème enfant pour un thème parent d'exemple ; nous utiliserons Astra, mais le processus est identique pour tout thème classique : seul l'identifiant du parent change. Vous avez besoin d'un accès aux fichiers (SFTP ou le gestionnaire d'hébergement) ou, en local, de votre explorateur de fichiers.
Étape 1 : Créez le dossier
Dans wp-content/themes, créez un nouveau dossier. Par convention, on utilise le nom du parent avec le suffixe -child:
wp-content/themes/astra-child/
├── style.css
└── functions.php
Étape 2 : Créez style.css avec l'en-tête
Le fichier style.css est obligatoire et son en-tête de commentaire est ce qui transforme le dossier en un thème. La ligne critique est Template: doit contenir le nom exact du dossier du thème parent (sensible à la casse) :
/*
Theme Name: Astra Child
Theme URI: https://biblioweb.es/
Description: Tema hijo de Astra para personalizaciones seguras
Author: BiblioWeb
Author URI: https://biblioweb.es/
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/
/* A partir de aquí, tus estilos personalizados. */
Étape 3 : Enqueue les styles dans functions.php
Contrairement à ce qui se faisait autrefois (avec @import, aujourd'hui déconseillé car lent), la feuille du parent est chargée avec un encollage correct depuis functions.php:
<?php
/**
* Encolar la hoja de estilos del tema padre y la del hijo.
*/
add_action( 'wp_enqueue_scripts', 'astra_child_enqueue_styles' );
function astra_child_enqueue_styles() {
// Estilos del padre.
wp_enqueue_style(
'astra-parent-style',
get_template_directory_uri() . '/style.css',
array(),
wp_get_theme( get_template() )->get( 'Version' )
);
// Estilos del hijo, cargados después para poder sobrescribir.
wp_enqueue_style(
'astra-child-style',
get_stylesheet_directory_uri() . '/style.css',
array( 'astra-parent-style' ),
wp_get_theme()->get( 'Version' )
);
}
Regardez le détail des deux fonctions jumelles : get_template_directory_uri() pointe toujours vers le parent y get_stylesheet_directory_uri() au enfant. Les confondre est à l'origine de la moitié des problèmes avec les thèmes enfants. Note : certains thèmes (Astra parmi eux) mettent déjà leurs styles en file d'attente de sorte que l'enfant se charge seul ; si vous voyez des styles dupliqués, simplifiez la mise en file d'attente en ne laissant que la feuille de l'enfant avec la dépendance appropriée.
Étape 4 : activez et vérifiez
Allez à Apparence → Thèmes: verás “Astra Child” como un tema más. Actívalo. La web debe verse exactamente igual que con el padre; si se ve sin estilos, revisa el valor de Template et la mise en file d'attente. Avec cela, votre thème enfant WordPress est maintenant actif et prêt à recevoir des personnalisations. En option, ajoutez une image screenshot.png (1200×900) dans le dossier de l'enfant pour qu'il affiche une miniature dans le sélecteur.
Étape 5 (optionnel) : écrasez les modèles
Pour modifier un modèle du parent, copiez-le à l'enfant en respectant son chemin relatif et éditez-le là. Par exemple, pour personnaliser le modèle d'articles individuels, copiez single.php du parent à la racine de l'enfant ; pour un modèle dans des sous-dossiers (fréquent dans WooCommerce), respectez la structure : woocommerce/single-product.php. WordPress utilisera votre copie automatiquement.
Que personnaliser depuis le thème enfant : exemples utiles
Une fois la structure mise en place, l'enfant devient votre espace de travail sécurisé. Quelques utilisations courantes :
Styles personnalisés
/* En style.css del hijo */
.site-title {
font-size: 2.2rem;
letter-spacing: -0.02em;
}
.entry-content a {
text-decoration: underline;
text-underline-offset: 3px;
}
Fonctions liées au design
// En functions.php del hijo: registrar un menú adicional.
add_action( 'after_setup_theme', 'astra_child_menus' );
function astra_child_menus() {
register_nav_menu( 'menu-legal', 'Menú legal del pie' );
}
// Un tamaño de imagen a medida para tarjetas del blog.
add_action( 'after_setup_theme', 'astra_child_image_sizes' );
function astra_child_image_sizes() {
add_image_size( 'tarjeta-blog', 600, 400, true );
}
Rappelez-vous le critère de la section précédente : si le snippet ne dépend pas du design (analyse, redirections, réglages de comportement), ne le mettez pas dans le functions.php de l'enfant ; déplacez-le vers un plugin personnalisé ou un gestionnaire de snippets, afin qu'il survive à un futur changement de thème. Beaucoup des plugins essentiels de WordPress existent précisément pour ne pas avoir à tout mettre dans le thème.
Erreurs courantes avec les thèmes enfants
- Modèle mal écrit. Si
Template: astrano coincide exactamente con el nombre de la carpeta del padre, WordPress mostrará el hijo como “roto”. Es el fallo número uno. - Utiliser @import dans le CSS. Cela fonctionne, mais sérialise les téléchargements et pénalise la vitesse. Mettez toujours en file d'attente depuis
functions.php. - Copier trop de modèles. Chaque modèle copié à l'enfant cesse de recevoir les améliorations que le parent incorpore dans ses mises à jour. Copiez uniquement ce que vous allez réellement modifier, et révisez vos copies lorsque le parent publie des changements importants.
- Confondre functions.php. El del hijo no sustituye al del padre: ambos se cargan. Si declaras una función con el mismo nombre que una del padre no “la sobrescribes”: provocas un error fatal, salvo que el padre la haya envuelto en
function_exists(). - Créer l'enfant après avoir personnalisé le parent. L'ordre correct est : installer le parent, créer l'enfant, activer l'enfant, et seulement ensuite personnaliser. Les réglages du personnalisateur sont enregistrés par thème, donc lors de l'activation de l'enfant, il peut être nécessaire de reconfigurer certaines options (ou de les migrer avec un plugin d'exportation de réglages).
- Modifier sans sauvegarde. Une erreur de syntaxe PHP dans
functions.phpfait planter le site web. Modifiez par SFTP (jamais depuis l'éditeur de fichiers du bureau en production) et ayez une copie récente pour annuler rapidement.
Thèmes enfants et thèmes de blocs : la nuance de 2026
Avec les thèmes de blocs (Full Site Editing), une grande partie de la personnalisation classique (en-têtes, pieds de page, modèles) se fait visuellement dans l'éditeur de site et est enregistrée dans la base de données, et non dans des fichiers. Cela réduit les cas où un thème enfant est indispensable, mais ne le met pas à la retraite : il reste la bonne méthode pour ajouter du CSS structuré, modifier theme.json (la configuration des styles globaux du thème, que l'enfant peut également écraser), enregistrer des motifs personnalisés ou modifier les modèles HTML du parent. Le mécanisme d'héritage fonctionne de la même manière : même style.css avec son Template, et les modèles de l'enfant (dans le dossier templates/) ont priorité sur celles du parent. La référence complète se trouve dans le manuel officiel des thèmes enfants de developer.wordpress.org.
Questions fréquentes
Un thème enfant affecte-t-il les performances de WordPress ?
L'impact est négligeable : une feuille de style additionnelle (souvent minuscule) et un functions.php supplémentaire. Bien construit, avec la mise en file d'attente correcte et sans @import, un thème enfant ne ralentit pas le site web de manière mesurable.
Puis-je créer un thème enfant d'un thème enfant ?
Non. WordPress n'admet qu'un seul niveau d'héritage : un enfant ne peut pas être le parent d'un autre thème. Si vous avez besoin de variantes, travaillez avec un seul enfant bien organisé ou envisagez une approche différente (modèles personnalisés, plugin de personnalisations).
Que se passe-t-il si je change de thème parent ?
L'enfant est lié à son parent spécifique : si vous activez un autre thème, l'enfant cesse de fonctionner tel quel. Les styles et les modèles sont rarement transférables (ils dépendent des classes et de la structure du parent), mais les fonctions indépendantes du design le sont, une autre raison de les conserver dans un plugin et non dans le thème.
Existe-t-il des plugins qui créent le thème enfant pour moi ?
Oui, des plugins comme Child Theme Configurator génèrent la structure en un clic et migrent même les réglages du personnalisateur du parent à l'enfant. C'est une option légitime si vous ne voulez pas toucher aux fichiers, bien que, comme vous l'avez vu, le processus manuel ne prenne que deux fichiers et cinq minutes, et le comprendre vous sera utile chaque fois que quelque chose ne correspondra pas.
Conclusion
Le thème enfant WordPress est l'une de ces petites pièces qui définissent la différence entre une bonne personnalisation et une personnalisation avec date de péremption. Deux fichiers (style.css avec son en-tête et functions.php avec la mise en file d'attente) suffisent à séparer vos modifications du thème original et à les protéger contre les mises à jour. Les règles pour ne pas se tromper tiennent en trois lignes : créez l'enfant avant de personnaliser, copiez à l'enfant uniquement les modèles que vous modifiez réellement, et réservez le functions.php du thème pour les fonctions de conception, laissant la fonctionnalité générale aux plugins. Si votre site web utilise un thème tiers et que vous envisagez de modifier une seule ligne de ses fichiers, n'hésitez pas : installez le thème enfant dès aujourd'hui. C'est l'investissement de cinq minutes le plus rentable de l'écosystème WordPress.