Il y a bien longtemps, dans une galaxie lointaine, très lointaine, tout le monde recommandait d’utiliser un thème enfant pour personnaliser le code d’un thème WordPress. Bon, d’accord, ce n’était peut-être pas il y a si longtemps que ça. Aujourd’hui, le recours à un thème WordPress enfant ne doit plus être systématique.

Il est vrai que sans un thème enfant, on risque de perdre toutes nos modifications à la prochaine mise à jour de notre thème. Et si vous nous suivez, vous le savez : mettre à jour son thème est crucial pour éviter les problèmes de sécurité et continuer à bénéficier de nouvelles fonctionnalités.

BB-8 fait un signe d'approbation.
Là-dessus, nous sommes bien d’accord.

Mais tout ça, c’était avant. Aujourd’hui, il existe des alternatives pour ne pas avoir à mettre les mains dans le cambouis. Car manipuler des fichiers CSS et PHP n’est pas à la portée de tout le monde.

Qui a envie de passer des heures à bidouiller et de prendre le risque de tout planter à cause d’une petite erreur dans le code ? Ce n’est vraiment pas ce que vous voulez, n’est-ce pas ?

Dans cet article, nous allons faire le point sur cette bonne pratique qui, au final, ne concerne pas tout le monde. Que la force soit avec vous.

Besoin d’un hébergeur pour votre site ?

Faites comme WPMarmite, choisissez o2switch. Non seulement les performances sont au rendez-vous mais le support est exceptionnel.

Pour savoir comment créer un site WordPress de A à Z, consultez notre guide complet.

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

Un thème WordPress enfant, c’est un thème qui va hériter des fonctionnalités, du design et de la mise en page d’un thème installé sur un site (qui devient le thème parent) et permettre de le personnaliser en profondeur.

Le thème parent reste intact, toutes les modifications sont apportées au thème enfant.

De son côté, WordPress va d’abord prendre en compte les fichiers du thème enfant. Et s’il a besoin d’autres fichiers pour fonctionner, il ira les chercher dans le thème parent.

En résumé, un thème enfant permet de personnaliser radicalement votre thème sans toucher au code du parent. Ce dernier pourra donc être mis à jour sans crainte.

Voilà pour la théorie. Maintenant, passons à la pratique.

Pourquoi et dans quels cas utiliser un thème enfant ?

Parfois, notre thème WordPress ne nous offre pas les options de personnalisation souhaitées.

L’exemple typique, c’est la modification de cette satanée mention Copyright dans le pied de page.

Si l’auteur du thème n’a pas ajouté de réglage au niveau de l’Outil de personnalisation, on n’a plus que nos yeux pour pleurer (même si, entre nous, c’est de plus en plus rare au sein des principaux thèmes WordPress gratuits).

Bien entendu, il est hors de question de modifier directement le code de notre thème. Si ce dernier devait être mis à jour, les modifications seraient perdues !

La seule solution, c’est de créer un thème enfant. Grâce à lui, on personnalisera le fichier footer.php du pied de page et le tour sera joué.

De même, ce dernier sera utile pour personnaliser la structure des pages d’archive, de taxonomie ou de n’importe quel autre fichier de la hiérarchie des templates.

Une autre raison valable serait d’intervenir sur les templates proposés par certaines extensions. Par exemple, vous pourriez personnaliser la page Mon compte de WooCommerce (ou encore la page panier, de commande, les pages produits et même le contenu par défaut des e-mails).

Dans ces 3 cas, utiliser un thème enfant est indispensable. Toutefois, ce n’est pas à la portée de n’importe qui. Il faut un minimum de connaissances en code avant de se lancer.

Et encore, nous n’avons pas parlé des constructeurs de page ! Avec un outil comme le Theme Builder d’Elementor Pro (lien aff), vous pouvez concevoir votre propre en-tête, pied de page et réaliser tous les modèles de pages de la hiérarchie des templates !

Avec un constructeur de page, les raisons d’utiliser un thème enfant sont encore moins nombreuses.

Deux autres types de personnalisations sont souvent citées pour inciter à la création d’un thème enfant :

  1. Modifier le CSS de votre thème pour changer son style ;
  2. Ajouter des snippets PHP pour ajouter des fonctionnalités.

Toutefois, n’en créez pas un uniquement pour ces raisons ! En effet, vous pouvez :

  • Utiliser le champ CSS additionnel de l’outil de personnalisation (situé dans Apparence > Personnaliser > CSS Additionnel) ;
  • Installer l’extension Code Snippets ou créer une extension de fonctionnalité si vous êtes développeur, c’est-à-dire l’équivalent d’un fichier functions.php contenu dans une extension (qui permet au passage de bien séparer les fonctionnalités du visuel).

En définitive, il y a peu de chances qu’un thème enfant soit pertinent si vous débutez avec WordPress.

De plus, l’arrivée du FSE (Full Site Editing) va encore limiter les cas d’utilisation. En effet, il sera possible de modifier l’intégralité de son site directement dans l’interface de WordPress, sans avoir à aller dans le code.

Formez-vous à WordPress en 8 semaines

Apprenez à concevoir des sites WordPress sécurisés, rapides et conformes aux obligations légales avec la formation à distance la plus généreuse du marché (éligible aux financements)

WPChef, la formation WordPress de référence

Comment créer un thème WordPress enfant ?

Vous faites partie des personnes concernées par la création d’un thème enfant ? Très bien ! Voyons comment le créer.

Pour le créer en deux clics, vous pouvez utiliser notre générateur de thème enfant.

Avant de commencer, éclaircissons la structure de votre site WordPress. Les thèmes installés sur votre site sont situés dans le répertoire suivant : /wp-content/themes/.

Imaginons que je souhaite personnaliser le thème Twenty Twenty-One. Ses fichiers sont situés dans le dossier suivant : /wp-content/themes/twentytwentyone/.

Ce thème contient tous les fichiers d’un thème « normal », à savoir une feuille de style (style.css), les fichiers modèles (index.php, page.php, etc.), le fichier des fonctions (functions.php) et éventuellement d’autres fichiers comme des ressources (images, librairies, etc.).

Ceci étant posé, nous pouvons nous lancer.

Étape 1 – Créer le répertoire du thème enfant

La première étape pour créer votre thème enfant est de créer un répertoire pour celui-ci. 

Avec l’aide d’un client FTP, directement sur votre serveur, ou directement sur votre ordinateur si vous travaillez en local, vous allez devoir créer un nouveau répertoire qui, dans notre exemple, portera le nom : twentytwentyone-enfant.

Ce répertoire devra être créé ici : /wp-content/themes/twentytwentyone-enfant/.

La bonne pratique consiste à reprendre le nom du thème parent puis à y ajouter le suffixe -enfant ou -child, comme dans l’image ci-dessous avec Astra.

Le chemin d'accès d'un thème enfant.

Une fois le répertoire créé, on passe à l’étape suivante.

Étape 2 – Créer une feuille de style

La deuxième étape pour créer votre thème enfant est de créer dans le répertoire du thème enfant une feuille de style, nommée style.css, qui va indiquer que ce nouveau thème est… justement un thème enfant de votre thème parent.

Voici le code à utiliser pour cette feuille de style :

CSS

Et voilà ! Vous venez de créer avec amour le fichier style.css de votre thème enfant. Mais euh… Qu’avons-nous fait exactement ?

  • Theme Name : le nom du thème que vous allez créer ;
  • Theme URI : l’adresse où on peut le télécharger, si applicable ;
  • Description : la description du thème ;
  • Author : l’auteur du thème… y mettre votre nom ;
  • Author URI : l’adresse où l’on va retrouver des infos sur l’auteur ;
  • Template : le thème parent qui va être utilisé. Il faut y mettre le nom du répertoire de celui-ci, en respectant la casse ;
  • Version : si vous tenez des numéros de version, c’est par ici que cela se passe.

N’ajoutez pas d’espace avant le double point.

Deux champs sont obligatoires pour que votre thème enfant fonctionne :

  • le champ Theme Name est nécessaire pour que WordPress reconnaisse les fichiers de ce dossier comme un thème ;
  • le champ Template indique à WordPress le nom du thème parent.

Les autres champs servent à ajouter des informations supplémentaires, comme celles que vous pouvez voir sur les autres thèmes.

Pour créer des fichiers sur votre serveur, vous pouvez soit :

Étape 3 – Importer le style du thème parent

Pour importer le style du thème parent dans votre thème enfant, vous allez devoir créer un fichier functions.php, reconnu et chargé automatiquement.

La structure d'un thème WordPress enfant.
A minima, voici ce que donne la structure de notre thème enfant.

À l’intérieur, entrez le code suivant :

PHP

Étudions ces lignes de code.

À première vue, on peut voir qu’on associe le hook « wp_enqueue_scripts » à la fonction « wpm_enqueue_styles() ».

Un hook est un point d’accroche dans l’exécution de WordPress, sur lequel on peut greffer des fonctions afin d’en modifier le comportement.

Pour vous en dire un peu plus, ce hook est déclenché au moment où WordPress est prêt à charger les scripts, et on vient y greffer notre code pour lui indiquer de charger les styles du thème parent.

Dans notre cas, il s’agit de charger le fichier style.css du thème parent afin que le thème enfant hérite des styles CSS du parent.

Vous pouvez, si le cœur vous en dit, changer le nom de la fonction wpm_enqueue_styles() en changeant par exemple le préfixe, « wpm » correspondant à WPMarmite.

Ceci étant, cette méthode peut ne pas fonctionner si votre thème parent charge ses propres styles en ignorant ceux de l’enfant. Dans ce cas, voici la méthode à employer.

Sauvegardez le tout pour finaliser la création de votre thème enfant.

Étape 4 – Activer le thème WordPress enfant

Une fois que vous avez créé votre thème enfant, il est temps de l’activer !

Rendez-vous dans l’administration WordPress, dans Apparence > Thèmes pour y retrouver votre thème enfant fraîchement sorti de l’œuf.

Le thème enfant apparaît dans la liste des thèmes installés.

Vous reconnaîtrez votre progéniture facilement : elle porte le nom que vous lui avez attribué à la naissance et affiche un fond transparent au lieu d’une capture d’écran de la page d’accueil.

Si vous trouvez que votre thème enfant ne paye pas de mine sans capture, vous pouvez en ajouter une dans son dossier. Pour être reconnue par le thème, la capture doit être nommée screenshot.png et mesurer 1200×900px.

Vous pouvez aussi copier le fichier screenshot.png du thème parent et le coller dans le thème enfant pour avoir la même capture, ou encore télécharger ce modèle.

Si vous activez ce thème enfant sur un site tout neuf, vous pourrez voir que… rien ne change. Renversant, non ? 🙃

C’est bien normal, car nous n’avons pas encore modifié notre thème enfant. Pour le moment, on peut simplement constater que l’appel du thème parent est fonctionnel.

Si vous activez un thème enfant sur un site existant, la configuration des menus, des widgets et de l’Outil de personnalisation devra être effectuée de nouveau.

Apprenez le CSS une bonne fois pour toutes

Créez des sites au rendu impeccable sans y passer des heures avec CSS Express.

Comment utiliser un thème WordPress enfant ?

Bien ! C’est maintenant que tous vos talents de développeur et de webdesigner vont être mis à rude épreuve… Car vous pouvez maintenant apporter toutes les modifications que vous souhaitez.

Quelles sont les actions que vous allez pouvoir mener ?

Adapter le code d’un modèle de page à vos besoins

Le principe d’un thème enfant est le suivant : s’il possède un modèle de page, ce dernier a la priorité par rapport à celui du thème parent.

Je m’explique avec un exemple : imaginons que vous souhaitez modifier le pied de page de votre site pour y supprimer la référence au copyright et y ajouter d’autres informations.

Pour ce faire, il va falloir copier le fichier footer.php qui se trouve dans votre thème parent puis le coller dans votre thème enfant.

Maintenant que ce fichier existe dans votre thème enfant, c’est lui qui est utilisé : il surcharge le footer.php du thème parent (le fichier enfant a la priorité sur le parent).

Pour ce qui est des autres modèles (header.php, page.php, etc.), votre thème continuera d’utiliser les éléments présents dans le parent, car ils ne sont pas présents dans le répertoire enfant.

La prochaine étape est donc d’identifier la ligne dans le code qui correspond au copyright et d’y ajouter vos différentes mentions en modifiant le code HTML.

Attention, vous pourriez être tenté de copier tous les fichiers de votre thème parent pour pouvoir les modifier à loisir dans votre thème enfant. C’est tentant… mais c’est aussi une très mauvaise pratique.

En effet, si vous faites cela, vos nouveaux fichiers auront toujours la main sur les fichiers du parent, et donc… les mises à jour des modèles de pages ne seront pas effectives sur votre site.

Ne copiez les fichiers et modifiez QUE les éléments dont vous avez vraiment besoin et que vous ne pouvez pas impacter dans les feuilles de style.

Personnaliser la feuille de style

En ajoutant vos modifications dans le fichier style.css du thème enfant, vous allez pouvoir modifier la mise en forme de l’ensemble des éléments graphiques du site.

Que ce soit les couleurs, les positionnements, les tailles des textes, les polices… bref, vous avez la main.

Pour tester vos modifications en direct, vous pouvez utiliser l’inspecteur de votre navigateur favori, accessible par un clic droit sur l’élément qui vous intéresse, puis sur « Inspecter » (l’intitulé peut légèrement différer selon le navigateur que vous utilisez).

La sélection d'un élément dans l'inspecteur.
Tout d’abord, je sélectionne l’élément que je veux modifier.

Un nouvel espace permet d’identifier les éléments de style (dans l’encadré à droite) liés à telle ou telle partie du site.

Pour sélectionner un autre élément, il vous suffit de cliquer sur la flèche en haut à gauche de l’inspecteur afin de survoler et de cliquer sur l’élément que vous souhaitez modifier.

Ensuite, vous pouvez apporter vos modifications au CSS pour tester de nouvelles mises en forme en direct.

La modification d'un élément en CSS à partir de l'inspecteur de Chrome.
Ici, je change la couleur de l’élément.

Quand les modifications vous conviennent, il vous suffit d’ajouter les éléments de code correspondant au thème enfant.

Par exemple, ici, pour modifier la couleur du nombre de commentaires de l’article, il suffit d’ajouter ce contenu à la feuille de style que vous avez créée à l’étape 2, sous le code précédemment ajouté :

CSS

Et hop ! C’est fait !

Ajouter de nouvelles fonctions à votre thème

En ce qui concerne les fonctions du thème (celles qui se trouvent dans le fichier functions.php), si vous créez un fichier functions.php dans le thème enfant, ce dernier sera chargé en premier, puis le fichier functions.php du thème parent.

Le fichier functions.php du thème enfant sera chargé juste avant celui du thème parent. L’avantage, c’est que vous pouvez apporter toutes les nouvelles fonctions que vous souhaitez en étant sûr, qu’au moins, le fichier d’origine ne sera pas cassé.

Par exemple, si vous souhaitez ajouter des dimensions d’images personnalisées pour vos imports d’images, il suffira d’ajouter les lignes suivantes dans le fichier functions.php du thème enfant.

PHP

Si vous souhaitez en savoir plus sur cette fonction add_image_size, je vous invite à découvrir la page dédiée du DevHub WordPress.

Alors, faut-il utiliser un thème WordPress enfant ?

La création d’un thème enfant permet de personnaliser finement un thème sans toucher aux fichiers d’origine. Nous avons vu qu’on pouvait adapter le code d’un modèle de page, surcharger les styles du thème et ajouter des fonctions dans le fichier functions.php. Les modifications apportées résistent aux différentes mises à jour du thème parent.

Toutefois, l’utilisation d’un thème enfant peut s’avérer technique si on ne maîtrise pas le code. Lancez-vous dans cette aventure uniquement si vous savez ce que vous faites. Dans le cas contraire, des solutions existent :

  • la modification du CSS est possible depuis l’Outil de personnalisation de WordPress ;
  • l’ajout de fonctions PHP peut se faire avec une extension ;
  • et on peut modifier des mises en page avec un constructeur de page.

Si vous désirez en savoir plus sur le code HTML, CSS et le fonctionnement d’un thème WordPress, jetez un œil à la formation CSSExpress. WPMarmite y a mis tous les ingrédients pour pouvoir débuter sereinement dans le code.

Et vous, que pensez-vous des thèmes enfants ? En utilisez-vous sur vos sites ? Dites-nous tout dans les commentaires. 🙂