Guide de correction

Comment installer un thème enfant WordPress (étape par étape)

20 mai 2026

Un thème enfant WordPress est un thème qui hérite du style et des fonctionnalités d'un autre thème, appelé thème parent. Activer un thème enfant indique à WordPress d'utiliser le parent pour tout sauf les fichiers que l'enfant remplace. Tout l'intérêt : quand le thème parent est mis à jour par son développeur (ce qui arrive régulièrement, souvent avec des correctifs de sécurité), vos personnalisations survivent intactes. Sans thème enfant, chaque personnalisation que vous apportez à un thème est effacée à la prochaine mise à jour. Avec un thème enfant, vos changements vivent dans un dossier séparé que les mises à jour ne touchent pas.

Pourquoi ai-je besoin d'un thème enfant en 2026 ?

Trois raisons qui n'ont pas changé en quinze ans :

  • Survivre aux mises à jour du thème parent. Les développeurs de thèmes publient des mises à jour mensuellement ou plus. Chaque mise à jour écrase chaque fichier du dossier du thème parent. Si vous avez édité header.php ou style.css directement, vos éditions disparaissent. Un thème enfant a son propre dossier que les mises à jour ne touchent jamais.
  • Remplacer uniquement des fichiers ciblés. Un thème enfant peut remplacer sélectivement n'importe quel fichier du parent. Vous voulez un footer.php personnalisé ? Mettez-le dans le thème enfant. Vous voulez le même footer.php que le parent mais avec un ajustement CSS ? Ajoutez juste le CSS au style.css de l'enfant et laissez footer.php tranquille.
  • Ajouter du PHP personnalisé sans forker le thème. Le functions.php du thème enfant se charge à côté de celui du parent. Ajoutez des filtres, des custom post types, des actions retirées, ou n'importe quel PHP sans toucher au code du parent.

L'approche "je vais juste éditer le parent" casse la première fois que le thème se met à jour automatiquement, ce qui sur un site WordPress typique arrive en quelques semaines. Utilisez un thème enfant.

Quand n'ai-je PAS besoin d'un thème enfant ?

Trois scénarios où un thème enfant est le mauvais outil :

  • Si vous personnalisez seulement via le Customizer ou le Site Editor. Les changements de couleur, choix de polices et paramètres similaires faits via Apparence, Personnaliser (Classique) ou le Site Editor (thèmes Bloc) sont stockés en base de données, pas dans des fichiers de thème. Ils survivent aux mises à jour sans thème enfant.
  • Si vous ajoutez seulement du CSS personnalisé. WordPress a un panneau intégré "CSS supplémentaire" dans le Customizer. Les petits ajustements CSS vivent là et persistent à travers les mises à jour. Un thème enfant est exagéré pour ajouter deux règles CSS.
  • Si vous utilisez un thème Bloc (FSE) et personnalisez seulement des templates. Les thèmes Full Site Editing stockent les personnalisations de template en base de données, accessibles via Apparence, Éditeur. Le besoin d'un thème enfant est beaucoup plus petit. Les thèmes Bloc peuvent encore bénéficier d'un thème enfant pour du PHP personnalisé ou des overrides theme.json, mais le cas courant de "je veux déplacer le logo et changer le texte du footer" n'en nécessite plus.

Si vous vous retrouvez à éditer des fichiers PHP, des fichiers template, ou à vouloir ajouter plus que quelques lignes de CSS, vous avez besoin d'un thème enfant. Pour tout le reste en 2026, le Customizer ou le Site Editor suffit.

Méthode 1 : installer un thème enfant manuellement (5 minutes)

Le thème enfant minimal est deux fichiers dans un dossier. Étape par étape :

Étape 1 : créer le dossier du thème enfant

Connectez-vous via SFTP (ou le gestionnaire de fichiers de votre panneau d'hébergement) et naviguez vers /wp-content/themes/. Vous verrez des dossiers pour chaque thème installé, comme twentytwentyfour/ ou astra/. Créez un nouveau dossier à côté d'eux. Convention de nommage : nom du parent plus -child. Si votre thème parent est Astra, nommez le dossier astra-child.

Étape 2 : créer style.css avec l'en-tête requis

Dans votre nouveau dossier astra-child, créez un fichier appelé style.css. Ouvrez-le dans un éditeur de texte et ajoutez ce bloc de commentaire d'en-tête :

/*
Theme Name: Astra Child
Theme URI: https://votresite.com
Description: Thème enfant pour Astra
Author: Votre Nom
Author URI: https://votresite.com
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/

La ligne Template est la seule qui doit correspondre exactement : elle doit être le nom du dossier du thème parent (sensible à la casse). Les autres lignes peuvent dire ce que vous voulez ; elles apparaissent dans Apparence, Thèmes.

Étape 3 : créer functions.php pour enqueuer les styles parent

Dans le même dossier astra-child, créez functions.php :

<?php
add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
    wp_enqueue_style('child-style', get_stylesheet_uri(), ['parent-style']);
});

Cela s'assure que la feuille de style du thème parent se charge d'abord, puis celle de l'enfant, pour que vos personnalisations remplacent celles du parent. Sans cela, le style.css du thème enfant est vide et le site se charge sans style. Beaucoup de vieux tutoriels recommandent encore d'utiliser @import url('../astra/style.css'); dans le style.css de l'enfant. N'utilisez pas l'approche @import en 2026. Elle est lente (force une seconde requête HTTP avant tout parsing CSS), n'est plus recommandée par le codex WordPress, et l'approche enqueue ci-dessus est le standard moderne.

Étape 4 : activer le thème enfant

Allez dans Apparence, Thèmes dans l'admin WordPress. Vous verrez votre nouveau thème enfant listé (il peut afficher une vignette placeholder). Cliquez sur Activer. Votre site devrait paraître identique à avant — mêmes polices, même layout, mêmes couleurs — parce que l'enfant hérite tout du parent.

Si le site paraît sans style, l'enqueue dans functions.php est erroné. Vérifiez que la ligne Template: dans style.css correspond exactement au nom du dossier parent.

Méthode 2 : utiliser un plugin de thème enfant (zéro codage)

Pour les utilisateurs qui préfèrent ne pas toucher au SFTP, les plugins automatisent la création de thème enfant. Deux choix fiables en 2026 :

  • Child Theme Configurator. Gratuit, activement maintenu, l'option la plus populaire. S'installe en deux clics, crée le thème enfant depuis n'importe quel parent actif, vous permet de copier des fichiers parent dans l'enfant pour les éditer via l'UI admin. Le choix pragmatique pour la plupart des utilisateurs.
  • Generate Child Theme. Plugin plus récent ciblé spécifiquement sur les thèmes Bloc. Utile si vous utilisez un thème Full Site Editing comme Twenty Twenty-Four où les patterns sont différents.

Étapes de l'approche plugin :

  1. Installez et activez le plugin.
  2. Allez dans Outils, Thèmes enfants (Child Theme Configurator) ou son équivalent.
  3. Sélectionnez le thème parent.
  4. Cliquez sur "Créer un nouveau thème enfant".
  5. Le plugin génère le dossier, style.css et functions.php correctement. Allez dans Apparence, Thèmes et activez.

Le plugin peut être désactivé après création du thème enfant. Le thème enfant lui-même ne dépend pas du plugin.

Comment personnaliser le thème enfant une fois actif ?

Trois catégories de personnalisation :

Personnalisations CSS

Ajoutez des règles CSS au style.css du thème enfant, sous le commentaire d'en-tête. Le CSS de l'enfant se charge après celui du parent, donc vos règles remplacent celles du parent à moins que le parent n'utilise !important ou des sélecteurs de spécificité plus élevée.

/* Dans astra-child/style.css */
.site-title {
    font-family: Georgia, serif;
    color: #2c3e50;
}

.entry-content a {
    text-decoration: underline;
}

Remplacements de templates

Pour personnaliser un fichier template (header, footer, layout d'article unique, etc.), copiez le fichier du thème parent dans le thème enfant au même chemin. WordPress utilisera alors la version de l'enfant à la place.

Exemple : personnaliser footer.php :

  1. Copiez wp-content/themes/astra/footer.php vers wp-content/themes/astra-child/footer.php.
  2. Éditez la copie de l'enfant.
  3. Sauvegardez. Le prochain chargement de page utilise votre version.

Les thèmes Bloc sont différents : au lieu de fichiers template PHP, ils utilisent des fichiers HTML dans un dossier templates/, et theme.json pour les styles globaux. Le mécanisme de remplacement est le même ; copiez le fichier du parent dans l'enfant au même chemin relatif.

Personnalisations PHP

Ajoutez des filtres, actions ou code personnalisé au functions.php de l'enfant — jamais à celui du parent. Le functions.php de l'enfant se charge avant celui du parent, donc il peut enregistrer des filtres que le parent vérifie plus tard.

// Dans astra-child/functions.php

// Changer l'URL du logo de login WordPress
add_filter('login_headerurl', function () {
    return home_url();
});

// Désactiver les emojis WordPress
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

Comment déplacer mes paramètres Customizer vers le thème enfant ?

Point de douleur courant : vous avez configuré les couleurs, polices et widgets dans le Customizer sous le thème parent. Activer le thème enfant semble les réinitialiser.

La vérité : les paramètres Customizer sont stockés par thème. Chaque thème (parent et enfant sont des "thèmes" différents pour WordPress) a ses propres paramètres. Pour préserver vos paramètres :

  1. Sous le thème parent, allez dans Apparence, Personnaliser, cliquez sur l'icône engrenage et "Exporter" (certains thèmes le fournissent ; pas tous). Ou utilisez un plugin comme Customizer Export/Import.
  2. Activez le thème enfant.
  3. Retournez dans le Customizer et importez le fichier.

Si votre thème ne supporte pas l'export Customizer, l'alternative est de configurer manuellement les mêmes paramètres sous le thème enfant. Pour les widgets, WordPress 4.2+ fournit un workflow "Widget Importer & Exporter" via le menu Outils ou via des plugins comme Widget Importer Exporter.

Et les thèmes Bloc (Full Site Editing) ?

Pour les thèmes Bloc (Twenty Twenty-Two et suivants, et thèmes modernes construits sur FSE), la structure du thème enfant est légèrement différente. Les deux fichiers minimum deviennent :

  • style.css avec le même bloc d'en-tête, mais Template: dossier-theme-parent référençant le thème parent Bloc.
  • theme.json dans le dossier enfant. Ce fichier remplace le theme.json du parent. N'incluez que les paramètres que vous voulez changer ; les valeurs du parent sont utilisées pour tout le reste.

Vous pouvez aussi remplacer des templates en copiant les fichiers HTML template du parent depuis templates/ et parts/ dans le thème enfant au même chemin.

Le Full Site Editor dans l'admin WordPress peut lire les remplacements du thème enfant et vous laisse personnaliser les templates visuellement. Les personnalisations faites dans l'éditeur sont stockées en base de données et survivent aux mises à jour de thème ; vous n'avez besoin du thème enfant que pour les choses que vous ne pouvez pas configurer via l'éditeur (comme du PHP personnalisé dans functions.php).

Erreurs courantes lors de l'installation d'un thème enfant

  • Mauvais nom Template: dans style.css. Si la valeur ne correspond pas exactement au nom du dossier du thème parent (sensible à la casse), WordPress traite l'enfant comme un thème cassé. C'est le nom du dossier, pas le nom d'affichage, qui compte.
  • Oublier <?php en haut de functions.php. Le fichier est silencieusement traité comme du texte, les styles parent ne sont pas enqueués, et le site se charge sans style. Commencez toujours les fichiers PHP par <?php.
  • Utiliser @import dans style.css pour charger le CSS parent. Fonctionne mais lent et déconseillé. Utilisez l'approche wp_enqueue_style dans functions.php.
  • Copier chaque fichier parent dans l'enfant "par sécurité". Ne le faites pas. Ne copiez que les fichiers que vous voulez réellement remplacer. Les fichiers dans l'enfant qui correspondent au parent utiliseront la version de l'enfant ; les fichiers uniquement dans le parent utiliseront la version du parent. La copie en masse défait le bénéfice de maintenabilité d'un thème enfant.
  • Éditer le thème enfant sur un site live sans staging. Une mauvaise ligne dans functions.php met le site en écran blanc. Pour les éditions PHP non triviales, utilisez un environnement de staging ou au moins un plugin de snippets de code qui capture les erreurs PHP avant la sauvegarde.
  • Nommer le dossier du thème enfant avec des espaces. Restez sur les lettres minuscules et les tirets. Les espaces et caractères spéciaux cassent la référence Template: sur certains serveurs.
  • Changer de thème parent sans supprimer l'enfant. Un thème enfant référence son parent par nom. Si vous passez à un thème parent différent sans mettre à jour l'enfant, l'enfant devient cassé. Soit supprimez l'enfant, soit mettez à jour sa ligne Template:.

Comment mettre à jour un thème parent sans casser l'enfant ?

C'est tout l'intérêt d'un thème enfant : les mises à jour parent ne devraient pas le casser. Trois scénarios :

  • Mises à jour normales. Cliquez "Mettre à jour" dans l'admin. Le dossier du thème parent est remplacé ; le dossier de l'enfant est intouché. Vérifiez que le site a toujours bonne mine.
  • Mises à jour de version majeure (1.x à 2.x). Parfois les templates changent significativement. Si votre thème enfant remplace des templates, le remplacement peut maintenant référencer des fonctions ou hooks qui n'existent plus. Vérifiez le changelog du thème parent avant les mises à jour majeures. Testez en staging.
  • Thème parent abandonné. Si le parent cesse de recevoir des mises à jour (correctifs de sécurité), votre enfant est coincé sur un thème vulnérable. La migration se fait vers un thème parent maintenu. Le thème enfant rend cela plus facile parce que la plupart de votre CSS et PHP personnalisé peut être réutilisé ; seuls les remplacements de template doivent être refaits.

Où trouver quels fichiers de thème remplacer ?

La hiérarchie de templates de WordPress documente quel fichier est chargé pour quel type de contenu. Communs :

  • header.php — haut de chaque page
  • footer.php — bas de chaque page
  • single.php — layout d'article unique
  • page.php — layout de page unique
  • archive.php — archives catégorie/tag/auteur
  • functions.php — personnalisations PHP
  • style.css — CSS

Pour les thèmes Bloc, les équivalents vivent dans templates/ sous forme de fichiers .html et dans theme.json pour le style.

Ce que vérifie InspectWP

InspectWP détecte si un thème est un thème enfant via le champ Template: dans style.css. La section WordPress du rapport liste à la fois le thème parent et le thème enfant, avec versions et dates de dernière mise à jour. Un site exécutant un thème enfant avec un parent qui n'a pas été mis à jour depuis plus d'un an est signalé parce que le parent a probablement des vulnérabilités non corrigées. Un site exécutant un thème enfant obsolète sur un parent à jour est informatif ; cela signifie généralement que le développeur qui a configuré le site a cessé de maintenir l'enfant mais que le parent continue de recevoir des correctifs de sécurité via le mainteneur du parent. La recommandation pragmatique est de garder les deux à jour, documenter les personnalisations du thème enfant dans son en-tête style.css, et préférer les thèmes enfants aux éditions directes même sur les configurations d'hébergement managé où les mises à jour automatiques de thème sont courantes.

Vérifiez votre site WordPress dès maintenant

InspectWP analyse votre site WordPress pour détecter les problèmes de sécurité, de SEO, de conformité RGPD et de performance — gratuitement.

Analyser votre site gratuitement