Le codex de WordPress, qui est le guide d’utilisation de WordPress, explique ce qu’est un thème enfant, son utilité et comment en créer un. Avec cet article, je vais tenter de vulgariser tout cela comme je le fais habituellement avec mes autres articles pour vous expliquer le pourquoi du comment du thème enfant.
Qu’est-ce qu’un thème WordPress ?
Avant de parler de thème enfant, peut-être que vous ne savez pas ce qu’on appelle un « thème » ?
Il s’agit du template, de l’habillage d’un site ou blog fait sous WordPress. C’est ce qu’on appelle « modèle » chez Blogger ou Canalblog.
En effet, on peut modifier toute la structure, la mise en page, l’apparence d’un blog, tout en conservant le contenu (articles, pages, commentaires, images, vidéos etc.).
Il existe des milliers de thèmes WordPress, on peut les trouver sur le répertoire de WordPress ou bien sur d’autres sites qui proposent des versions gratuites ou payantes.
On les ajoute sur notre blog de plusieurs manières possibles, que je détaille dans un article sur les thèmes WordPress féminins.
Le thème est constitué de plusieurs dizaines (voire centaine) de fichiers qui permettent d’afficher d’une certaine manière le blog. Les fichiers sont des bouts de code en langage informatique : html, php, css, javascript… Voici les fichiers les plus connus sous WordPress car ce sont ceux qu’on va pouvoir modifier pour changer l’aspect du blog :
- header.php pour afficher le haut du blog (logo, menu, etc.)
- page.php pour définir la structure d’une page,
- single.php pour la structure d’un article,
- sidebar.php pour la colonne verticale à gauche ou à droite,
- footer.php pour le footer,
- comments.php pour gérer les commentaires,
- et beaucoup d’autres comme navigation.php, widgets.php, 404.php, archive.php, search.php, author.php, etc. etc. Je ne peux pas tous les citer ici car le type de fichiers (ou leur nom) peut aussi varier d’un thème à l’autre, même si la plupart sont quand même récurrents.
Vous voyez donc qu’on a plein de bouts de site (en-tête, commentaires, colonne verticale…), qui utilisés conjointement, permettent d’avoir un blog entier :
- dans header.php, on y indique où trouver le logo, à quel endroit le placer, les dimensions de l’en-tête, le contenu du menu, son emplacement, sa couleur, sa taille, etc.
- etc pour chacun des fichiers,
- dans page.php, on va faire appel à header.php, comments.php, sidebar.php, footer.php en plus du contenu qui caractérise les pages.
Ainsi, on n’a pas besoin de répéter X fois les mêmes codes pour le header si on a X pages différentes par exemple. Et si on a envie de modifier le contenu du header, on n’aura qu’à le faire une seule fois au lieu de X fois.
C’est ce qui permet d’avoir un site dynamique et non statique comme les débuts du web.
Idem pour le contenu du blog : on fait appel à la base de données qui contient (entre autres) tout le texte des articles, on n’a pas besoin de créer une page en html entière pour chaque article que l’on souhaite afficher (on n’a pas un fichier html par article de blog !).
Deux autres fichiers sont également importants dans un thème WordPress :
- style.css : ce fichier gère la mise en page d’un site WordPress. J’ai fait un raccourci quand je vous ai parlé du fichier header.php plus haut. On n’y trouve pas la taille du menu, son emplacement, sa couleur, sa typographie etc dans le fichier header.php mais le menu est défini par une balise qui est reprise dans style.css. Ainsi, si on souhaite que tout le texte du blog soit dans une certaine police, on ne fait la modification qu’une seule fois dans le fichier style.css au lieu de devoir le changer dans chacun des fichiers .php. Les fichiers php permettent en fait de définir quel contenu on va retrouver, avec une mise en page brute (tout à la suite les uns les autres)
- functions.php : ce fichier gère toutes les fonctions, les fonctionnalités, les actions d’un site WordPress.
Un thème WordPress est appelé un thème parent dès qu’on lui attribue un thème enfant.
Qu’est-ce qu’un thème enfant ?
Maintenant qu’on a vu dans les grandes lignes comment était constitué un thème WordPress, on va voir ce qu’est un thème enfant : celui-ci est constitué de quelques fichiers (au minimum 2) qui permettent d’utiliser un thème existant et de pouvoir lui y ajouter des modifications.
C’est comme si on posait un papier calque sur un dessin : on verra toujours le dessin principal si on ne fait rien de plus. Mais si on dessine un trait en plus sur le calque, on aura à la fois le dessin avec le trait supplémentaire.
En gros, on utilise le thème (parent) et on lui ajoute des personnalisations sur le thème enfant.
Pourquoi faut-il créer un thème enfant ?
Restons sur l’exemple du dessin : si on n’avait pas utilisé de calque et qu’on avait dessiné le trait directement sur le dessin initial, si on change le dessin, le trait aura disparu.
En d’autres termes, si par exemple, je veux utiliser un thème existant et changer l’emplacement du menu par rapport au logo. Si je modifie le fichier header.php directement, je vais modifier le fichier de base fourni par le développeur dans le thème.
Or, il arrive souvent que le développeur fasse des mises à jour du thème, soit pour apporter des nouvelles fonctions et améliorations, soit pour réparer une faille de sécurité. Si je mets à jour la nouvelle version du thème, tous les nouveaux fichiers vont remplacer ceux que j’ai actuellement, dont le fichier header.php : je vais donc perdre les modifications que j’avais apportées pour le menu.
Et si je ne mets pas à jour le thème, je ne bénéficierai pas des améliorations qu’il aura apportées sur les autres fichiers et je risque de me faire pirater.
Avec un thème enfant, on peut ainsi modifier autant qu’on veut un thème existant, tout en gardant les optimisations apportées par son créateur (sauf si bien sûr le créateur a modifié un fichier qu’on a repris).
Comment créer un thème enfant ?
Choisissez d’abord le thème parent et installez-le sur votre blog WordPress. Il vaut mieux quand même prendre un thème parent qui se rapproche le plus du résultat fini souhaité, pour avoir le moins de modifications possibles à faire.
Vous devez accéder aux fichiers de votre site, à l’aide d’un logiciel client FTP comme Filezilla.
Il y a ensuite plusieurs étapes à respecter pour créer le thème enfant.
1. Créez le dossier du thème enfant
Dans vos fichiers via le FTP, allez dans le chemin www/wp-content/themes/ et créez un dossier que vous appellerez comme vous voudrez. Les bonnes pratiques font que si le thème parent s’appelle « twentyeleven » par exemple, on va appeler le thème enfant « twentyeleven-child ». Ainsi, si vous avez plusieurs thèmes dans votre répertoire, vous saurez à quoi il correspond.
2. Créez un fichier style.css
Dans Filezilla, faites un clic droit dans le répertoire du thème enfant et cliquez sur « Créer un nouveau fichier ». Nommez ce fichier « style.css ».
Ouvrez ensuite ce fichier à l’aide d’un logiciel d’édition de texte comme « Bloc Notes » pour Windows ou « TextEdit » pour Mac. Puis copiez-collez le texte suivant dans le fichier :
/* Theme Name: Twenty Fifteen Child Theme URI: http://example.com/twenty-fifteen-child/ Description: Twenty Fifteen Child Theme Author: Votre nom Author URI: http://votresite.com Template: twentyfifteen Version: 1.0.0 */
Modifiez les lignes comme vous le souhaitez, mais celle qui doit être bien renseignée est « Template » : elle doit correspondre au nom du thème parent.
3. Créez un fichier functions.php
De la même manière que pour le fichier style.css, créez un fichier que vous allez nommer « functions.php ».
Ce fichier va vous permettre de dire à votre thème enfant quel est le thème parent à utiliser.
Copiez-collez le texte ci-dessous :
<?php add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); } ?>
4. Activez le thème enfant
Dans votre admin WordPress, allez dans « Apparence » puis « Thèmes et activez le thème enfant.
Voilà, votre thème enfant est mis en place !
Remarque : normalement, il ne devrait pas y avoir d’image sur la liste des thèmes car vous n’avez pas ajouté de photo, mais si vous voulez vraiment en ajouter une, vous pouvez copier-coller dans le thème enfant le fichier screenshot.png contenu dans le thème parent.
5. Personnalisez votre thème WordPress
Vous pouvez maintenant personnaliser le thème comme vous voulez, tout en gardant intact le thème parent. Si vous ne faites aucune modification, vous voyez que le thème enfant est identique au thème parent.
Pour personnaliser le thème enfant, modifiez les fichiers qui vous intéressent :
- style.css : si vous souhaitez modifier le design d’un contenu existant, il vous suffit de rajouter dans ce fichier les lignes de code correspondantes, à la suite du texte que vous avez créé tout à l’heure. Le thème enfant va en effet charger le fichier style.css du thème parent pour prendre en compte le design défini dans le thème initial, puis ensuite charger le fichier style.css du thème enfant. C’est comme si le contenu de style.css de l’enfant était à la suite de style.css du parent. Les lignes qui arrivent après vont ainsi prendre le dessus sur les précédentes, on dit qu’elles les « écrasent ». Par exemple, si vous écrivez d’abord que tout le texte est de couleur noire, puis que ce même texte est de couleur bleue, c’est le bleu qui va primer. (si je résume sans entrer dans les détails)
- functions.php : ici aussi, rajoutez les lignes de fonctions que vous souhaitez. Mais contrairement au style.css, le fichier functions.php du thème enfant ne va pas écraser celui du thème parent, il va même se charger avant que le parent donc renseignez-vous bien avant de rajouter une fonction car c’est un peu plus compliqué que le css.
- header.php, page.php, archive.php et autres fichiers php (hormis functions.php) : pour modifier ces fichiers, copiez-collez tout le fichier dans le répertoire enfant et modifiez directement le fichier complet. Ce n’est pas comme les fichiers style.css et functions.php où les fichiers parent et enfant sont chargés. Ici, le fichier le remplace entièrement et les fichiers non copiés du thème parent continuent d’être utilisés. Par contre, ne copiez-collez vers le thème enfant, seulement les fichiers que vous souhaitez modifier (et non tous les fichiers du thème parent), sinon vous ne bénéficierez pas des mises à jour du thème car elles ne seront pas répercutées sur le thème enfant.
Tous ces fichiers sont à manier avec attention, car le moindre espace en trop, la moindre erreur peut faire planter tout votre blog. Pour en savoir plus sur les thèmes enfants de WordPress, vous pouvez lire le codex.
Si vous n’avez pas un minimum de connaissances en langage informatique, évitez de toucher au code et passez par un professionnel.
A vous de jouer
Est-ce que vous aviez créé un thème enfant pour votre blog WordPress ? Pas trop compliqué à faire ? Si vous avez d’autres questions, n’hésitez pas à les poser dans les commentaires ci-dessous car j’imagine que ce ne doit pas être très simple lorsque c’est la première fois qu’on en entend parler.
Mia
Ancienne responsable e-commerce pour une marque de luxe, elle est l'auteure du livre "Augmenter le trafic de son blog" paru aux Editions Eyrolles.
Elle s'adresse à tous ceux dont la passion est le moteur.
Voir sa description détaillée.
Les derniers articles par Mia (tout voir)
- Je vous invite dans ma bibliothèque (plein de cadeaux pour vous) - 2 avril 2019
- Je suis maman, blogueuse, guitariste, sportive et bien d’autres… - 28 mars 2019
- Le blog a 5 ans ! Un jeu-concours pour fêter ça - 8 mars 2019
Excellent billet. Courage pour ce travail
Parfait, très facile à suivre et parfaitement clair !
Merci Mia 🙂
Bonjour, Merci tout d’abord pour cet article très intéressant qui m’a aidé.
Seulement mon thème enfant s’affiche mais il y a comme un « bug » pour mon image a la une, la bannière de mon blog. En effet, les textes qui se situent en dessous (les articles et blocs widgets de la sidebar a droite) remontent sur ma bannière. Cela ne le fait pas sur le thème principal donc il doit y avoir un probleme avec mon thème enfant. C’est le thème Activello. Du coup je ne peux mettre aucune image pour mon site en accueil en « bannière » puisqu’elle est masquée par mes articles etc en dessous qui remontent dessus…
Merci de m’aider svp j’ai tout essayé….
Bonjour, je suis désolé de revenir vers vous et de vous ennuyer, mais je suis complètement bloqué n’arrivant pas à créer les fichiers « style.css » et « functions.php ». J’ai téléchargé Filezilla que je n’ai encore jamais utilisé et donc je ne vois pas où faire un clic droit dans le répertoire du thème enfant et cliquer sur « Créer un nouveau fichier ». Nommez ce fichier « style.css » comme vous l’indiquez. D’ailleurs je ne sais pas ce qu’est un « répertoire » . c’est un dossier ?
Puis-je vous appeler à l’aide ?
Avant de pouvoir créer un répertoire ou un dossier (c’est la même chose), il faut que vous entriez les informations d’accès au serveur de votre site. Mais quoiqu’il en soit, si vous n’êtes pas à l’aise avec l’informatique, il vaut mieux que vous ne touchiez pas aux codes sources.
Comme je viens de répondre sur votre autre commentaire, si vous avez juste personnalisé le thème avec les options existantes, vous n’avez pas besoin de thème enfant. Du coup je ne comprends pas pourquoi la mise à jour du thème a modifié la mise en page de votre site.
Je n’ai peut-être pas été très clair. Pour l’instant rien n’a bougé puisque je n’ai pas fait la mise à jour. J’avais simplement demandé sur le support de Divi si je devais créer un thème enfant avant de la faire et l’on m’avait répondu que oui.
Oui, j’ai utilisé le générateur Divi pour faire la mise en page, et je n’ai pas touché au code. Pourtant ils me disent de créer un thème enfant.
Même si cette mise à jour est mineure pour l’instant, il viendra un jour où ils feront une mise à jour majeure, donc tôt ou tard il faudra créer le thème enfant. Le changement est le suivant :
version 2.5.6 ( updated 11-06-2015 )
– Fixed the issue with deprecated wp_title function in WordPress 4.4
* functions.php
* epanel/custom_functions.php
– Bumped version number
* style.css
Le thème enfant ne sert à rien si vous ne touchez pas au code, qu’il y ait mise à jour du thème parent ou pas… Est-ce que vous avez dit au support de Divi que vous n’avez pas modifié les fichiers du thème ? Vous pouvez mettre à jour le thème, cela ne changera pas vos configurations actuelles (si vous n’avez modifié que les options disponibles dans l’admin).
Vous n’avez pas modifié les fichiers dans « Apparence » / « Editeur » non ?
Oh merci infiniment, Mia ! Vous me tirez une sacrée épine du pied.
Non, je n’ai pas touché du tout aux codes, je n’ai fait qu’arranger à ma sauce les options disponibles. Je suis allé dans « Apparence »/ »Editeur » et quand j’ai vu tous ces hiéroglyphes, je n’ai touché à rien et j’ai refermé aussitôt. Je vais recontacter le support Divi pour leur dire que je n’ai touché à rien.
Je voulais juste que mon blog sorte un peu de l’ordinaire en utilisant leurs « outils », pour créer une sorte de livre de photos accompagnées de textes et sur lesquels on puisse faire des commentaires. (Mais pour l’instant ça reste le désert ! Même mes proches ont visité sans rien dire. Ils m’écrivent tous directement. Alors je travaille sérieusement au référencement. J’avais déjà, d’instinct, parce que je suis moins sot que j’en aie l’air, fait (ou pas fait) des choses que vous conseillez dans votre précieux livre. Et ça semble marcher car pour un si jeune blog d’à peine 2 semaines, je le trouve souvent en haut de page de recherche.
Je ne vous cache pas que j’ai trouvé une extraordinaire similitude d’idée entre votre « pause café » et mon « sur le seuil ». Quelle coïncidence !
Vous savez et partagez énormément de choses et votre blog est une mine d’informations et de conseils. Merci infiniment pour votre aide. Vous êtes la seule qui sachiez expliquer clairement à des néophytes avec des mots de tous les jours (mis à part les termes spécifiques). Et, cerise sur le gâteau, quelqu’un qui sait s’exprimer dans un bon français.
Bonjour, j’allais justement vous écrire pour vous parler de votre blog, de la mine d’info qu’il offre, pourvous remercier car tous vos nombreux conseils m’ont ENORMEMENT aidé dans la construction de mon blog, car je savais exactement ce que je voulais obtenir (et je l’ai obtenu) mais j’étais comme une grosse andouille ne sachant ni par quoi ni comment commencer. Et peu à peu, en lisant beaucoup j’ai commencé à piger. Mon blog est donc en ligne depuis une semaine environ. Tout allait bien, je savais enfin comment administrer l’ensemble du blog avec mon thème et tout à coup patatras, ils font une mise à jour. Donc je dois créer un thème enfant et malgré vos explications je ne comprends pas très bien comment faire. Vous dites : « Dans Filezilla, faites un clic droit dans le répertoire du thème enfant et cliquez sur « Créer un nouveau fichier ». Nommez ce fichier « style.css ». »
Je n’ai pas Filezilla (je suis sous Mac et Filezilla est pour Windows). Donc je bloque complètement. je n’arrête pas de chercher partout et nulle part je ne trouve d’explications. Le codex de WP est encore plus obscur pour moi. Si vous pouviez me donner un petit coup de pouce. Merci
Bonjour, merci pour votre message, bravo pour la mise en ligne de votre blog !
En effet, il faut créer un thème enfant pour éviter que toutes les personnalisations que vous avez faites sur le thème soient perdues lors de la mise à jour. Vous devez donc recommencer, cette fois-ci sur le thème enfant. Vous aviez modifié directement les fichiers du thème ? En passant par l’éditeur de WordPress ?
Vous pouvez télécharger Filezilla pour Mac, sur ce lien : http://www.clubic.com/telecharger-fiche192766-filezilla.html
Bon courage
Re bonsoir,
Merci de votre réponse. Qu’entendez-vous par « Vous devez donc recommencer, cette fois-ci sur le thème enfant. » Vous voulez dire que sur le nouveau thème enfant je dois refaire tout ce que j’ai déjà fait sur le thème parent ? J’ai construit mon blog avec Divi qui, lorsqu’on a compris les manip est extraordinairement facile. Aucun code à toucher. Tout se fait par « glisser-déposer » avec la multitude de possibilités qu’offre ce thème.
Je viens de télécharger Filezilla pour Mac. Je verrai demain pour le thème enfant. Ce soir j’ai la tête comme une pastèque.
Si vous avez utilisé le générateur Divi pour faire la mise en page, et que vous n’avez pas touché au code, normalement vous n’avez pas besoin d’utiliser de thème enfant. Qu’est-ce que la mise à jour a changé sur votre site ?
Bonsoir,
Il est hélas dommage de ne lire que des astuces ou autres pour les personnes qui utilisent des blogs WordPress avec hébergeur ou CSS.
Pour débuter chez WordPress, le gratuit offre déjà pas mal d’options pour un(e) débutante, ce que je ne suis plus du tout.
Bravo pour les trucs de blogueuses, bravo pour les autres liens où je me suis inscrite curieuse de tout 🙂
Je blogue pour le plaisir et le partage. Cela fait longtemps que je suis sur internet et bien avant que celui-ci n’arrive entre nos mimines. 🙂
Je plussoie pour ce genre d’initiative et bravo pour les pauvres qui rament dans les codes 🙂
Bonne nuit blogueuse. Je me suis inscrite….enfin je pense….. hum, hum…. 😉
A bientôt certainement.
C’est bien pratique, je ne touche que les css, je ne pense pas que ce soit le fichier le plus mis à jour
merci pour cet article très clair
à bientôt