vendredi 25 septembre 2026

À propos

Contact

Thèmes

Créer un thème enfant WordPress pas à pas, sans rien casser

Guide complet pour créer un thème enfant WordPress correctement : style.css, functions.php, enqueue des styles, cas d'usage réels et limites à connaître.

Par Clément Hadrot • 23 avril 2020 • 5 min de lecture • Aucun commentaire
Créer un thème enfant WordPress pas à pas, sans rien casser

Modifier directement les fichiers d’un thème WordPress parent est l’un des pièges classiques du débutant : tout fonctionne parfaitement, jusqu’au jour où une mise à jour du thème écrase silencieusement toutes vos personnalisations. Le thème enfant existe précisément pour éviter ce scénario catastrophe, et c’est une pratique que tout développeur WordPress sérieux doit maîtriser.

Le principe est simple sur le papier : créer un thème séparé qui hérite du thème parent, tout en pouvant surcharger n’importe lequel de ses fichiers ou styles. Dans la pratique, quelques subtilités méritent d’être expliquées pour éviter les erreurs les plus fréquentes, notamment sur le chargement des feuilles de style.

Structure minimale d’un thème enfant

Un thème enfant WordPress a besoin d’au minimum deux fichiers pour fonctionner : style.css et functions.php. Créez un nouveau dossier dans wp-content/themes/, par exemple mon-theme-enfant, puis commencez par l’en-tête obligatoire de style.css :

/*
 Theme Name: Mon Theme Enfant
 Template: twentytwenty
 Description: Thème enfant basé sur Twenty Twenty
 Version: 1.0.0
 Author: Clément Hadrot
*/

La ligne Template est la clé de voûte de tout le système : elle doit correspondre exactement au nom du dossier du thème parent, tel qu’il apparaît dans wp-content/themes/. Une erreur de casse ou une faute de frappe ici, et WordPress refusera d’activer le thème enfant correctement.

Charger correctement les styles avec functions.php

L'essentiel à retenir : Un thème enfant protège vos personnalisations des mises à jour ; 4 lignes de style.css et 6 de functions.php suffisent à démarrer ; Un thème enfant n'est pas une solution à tout, il a ses limites

Contrairement à une idée reçue, le simple en-tête Template ne suffit pas à charger automatiquement le CSS du parent. Il faut explicitement enqueuer les deux feuilles de style, celle du parent puis celle de l’enfant, via le hook wp_enqueue_scripts :

<?php
add_action( 'wp_enqueue_scripts', 'mon_theme_enfant_styles' );

function mon_theme_enfant_styles() {
    wp_enqueue_style(
        'style-parent',
        get_template_directory_uri() . '/style.css'
    );

    wp_enqueue_style(
        'style-enfant',
        get_stylesheet_uri(),
        array( 'style-parent' ),
        wp_get_theme()->get( 'Version' )
    );
}

Ici, la distinction entre deux fonctions est essentielle et source de confusion permanente chez les débutants :

  • get_template_directory_uri() pointe toujours vers le dossier du thème parent
  • get_stylesheet_uri() pointe vers le fichier style.css du thème actif, donc l’enfant

Le tableau de dépendances array( 'style-parent' ) garantit que le CSS du parent se charge en premier, permettant à votre feuille de style enfant de le surcharger sans conflit d’ordre.

Surcharger un fichier de gabarit

Au-delà du CSS, un thème enfant peut redéfinir n’importe quel fichier de gabarit du parent : il suffit de créer un fichier portant exactement le même nom et le même chemin. Si le parent contient template-parts/content.php, créez ce même chemin dans l’enfant, et WordPress utilisera automatiquement votre version. Cette mécanique s’appuie directement sur la hiérarchie de templates que nous avons détaillée dans un précédent article : le thème enfant est simplement prioritaire sur le parent dans cette recherche.

Attention toutefois à functions.php, qui fait exception : contrairement aux autres fichiers, celui de l’enfant ne remplace pas celui du parent, il se charge en plus, et avant lui. Vous pouvez donc y ajouter des fonctions ou des hooks sans jamais casser la logique existante du parent.

Cas d’usage typiques

Le thème enfant est particulièrement pertinent dans ces situations :

  • Vous utilisez un thème du répertoire officiel (Twenty Twenty, Astra, GeneratePress…) et souhaitez ajuster quelques styles ou gabarits sans perdre les futures mises à jour
  • Vous livrez un projet client sur un thème premium et devez garder la possibilité de le mettre à jour sereinement
  • Vous voulez tester des modifications ponctuelles sans risquer de corrompre le thème principal

Je déconseille toujours de partir d’un thème enfant vide sur un thème parent que le client ne mettra jamais à jour. Si les mises à jour ne sont pas prévues, autant repartir sur un thème sur-mesure, plus léger et plus facile à maintenir sur le long terme.

Les limites à connaître

Le thème enfant n’est pas une solution universelle. Il montre ses limites dans plusieurs cas concrets :

SituationThème enfant adapté ?
Ajuster quelques couleurs et policesOui, parfaitement
Surcharger un ou deux gabaritsOui
Refonte complète de la structure HTMLNon, un thème sur-mesure est préférable
Thème parent mal codé ou abandonnéNon, l’héritage n’apporte rien

Un thème enfant hérite aussi des défauts du parent : s’il est lourd, mal optimisé ou truffé de fonctions obsolètes, votre thème enfant traînera les mêmes boulets sans possibilité de s’en défaire facilement.

En résumé

Créer un thème enfant WordPress demande peu de code, mais une compréhension précise du mécanisme de chargement des styles et de la hiérarchie de fichiers. Retenez les deux fonctions clés, get_template_directory_uri() pour le parent et get_stylesheet_uri() pour l’enfant, et vous éviterez la quasi-totalité des erreurs classiques. C’est un outil précieux pour la maintenance à long terme, à condition de l’utiliser pour ce qu’il est : une couche de personnalisation, pas une refonte déguisée.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi