Comment créer un thème WordPress : guide complet étape par étape
Sommaire de l'article
Introduction
WordPress est une plateforme de CMS (Content Management System) extrêmement populaire pour créer et gérer des sites web de tous types : blogs, sites vitrines, boutiques en ligne, portails d’actualités, portfolios, etc. L’un des principaux atouts de WordPress est sa grande flexibilité, notamment grâce à son système de thèmes. Un thème WordPress détermine l’apparence visuelle, la mise en page et une partie du fonctionnement de votre site web.
Créer un thème WordPress personnalisé peut paraître intimidant au premier abord, mais en suivant une méthodologie claire et en comprenant les fichiers essentiels, cette tâche devient accessible, même pour un développeur débutant ayant des bases en HTML, CSS et PHP. Un thème bien conçu permet d’améliorer les performances, l’expérience utilisateur, le référencement naturel et la maintenabilité du site.
Dans cet article, nous allons vous guider pas à pas pour créer un thème WordPress à partir de zéro, puis voir comment le personnaliser et l’optimiser. Nous aborderons :
- les concepts clés et la structure d’un thème WordPress ;
- les fichiers indispensables et leur rôle ;
- la création d’un thème enfant (child theme) pour personnaliser un thème existant ;
- les bonnes pratiques de performance, d’accessibilité et de sécurité ;
- des conseils concrets pour améliorer l’UX et le SEO on-page de votre site.
Pré-requis pour créer un thème WordPress
Avant de commencer, il est important de disposer de quelques éléments et compétences de base :
- Une installation WordPress fonctionnelle en local (via des outils comme Local, MAMP, WampServer ou XAMPP) ou sur un serveur d’hébergement.
- Un éditeur de code adapté au développement (VS Code, PhpStorm, Sublime Text, etc.).
- Des notions de base en HTML5, CSS3 et PHP. Des connaissances en JavaScript sont un plus, notamment pour les fonctionnalités interactives.
- Des permissions pour accéder au répertoire
/wp-content/themes/de votre installation WordPress (via FTP, SFTP ou un gestionnaire de fichiers de votre hébergeur).
Concepts clés
Pour créer un thème WordPress propre et évolutif, il est essentiel de maîtriser quelques concepts fondamentaux.
Qu’est-ce qu’un thème WordPress ?
Un thème WordPress est un ensemble de fichiers (PHP, CSS, JavaScript, images, templates, etc.) qui contrôle :
- l’apparence du site (typographie, couleurs, mise en page) ;
- la structure des pages (en-tête, contenu, barre latérale, pied de page) ;
- la manière dont les contenus (articles, pages, archives, résultats de recherche) sont affichés.
WordPress se base sur une hiérarchie de templates pour déterminer quel fichier utiliser selon le type de contenu demandé (page d’accueil, article, catégorie, page 404, etc.).
Structure d’un thème WordPress
Un thème WordPress classique est stocké dans un dossier situé dans /wp-content/themes/. Ce dossier contient au minimum deux fichiers obligatoires pour qu’un thème soit reconnu par WordPress :
- style.css : fichier principal de styles, mais aussi fichier qui contient les métadonnées du thème (nom, auteur, description, version, etc.) dans un commentaire en haut du fichier.
- index.php : fichier modèle principal. S’il n’existe aucun autre template plus spécifique pour un type de contenu donné, c’est ce fichier qui sera utilisé par WordPress pour générer la page.
En pratique, un thème complet inclut généralement d’autres fichiers importants :
- header.php : contient le code de l’en-tête du site, notamment la balise
, le logo, le menu principal, l’ouverture de la baliseet souvent l’ouverture d’un conteneur principal. - footer.php : contient le code du pied de page du site, les informations légales, des liens secondaires, les scripts chargés en bas de page et la fermeture des balises
et. - functions.php : permet de déclarer les fonctionnalités du thème (menus, widgets, images à la une, scripts et feuilles de style, support des fonctionnalités de WordPress, etc.).
- sidebar.php : gère l’affichage de la ou des barres latérales (widgets, menus secondaires, formulaires de recherche, etc.).
- single.php : définit la mise en page d’un article de blog individuel.
- page.php : définit l’affichage d’une page statique.
- archive.php : gère l’affichage des listes d’articles par catégorie, étiquette, auteur ou date.
- search.php : affiche les résultats de recherche internes du site.
- 404.php : affiche la page d’erreur lorsque le contenu demandé n’est pas trouvé.
La hiérarchie des templates
WordPress utilise une hiérarchie précise pour choisir quel fichier utiliser. Par exemple :
- Pour un article de blog, WordPress va chercher successivement
single-{post-type}.php, puissingle.php, puisindex.phpsi aucun fichier plus spécifique n’est présent. - Pour une page, il utilisera un éventuel template personnalisé (fichier avec un commentaire Template Name), sinon
page.php, puisindex.php. - Pour les archives de catégories, il cherchera
category-{slug}.php, puiscategory.php, puisarchive.php, puisindex.php.
Comprendre cette hiérarchie vous permet de créer des modèles spécifiques pour les types de contenus les plus importants de votre site, tout en gardant index.php comme solution de repli.
La boucle WordPress (The Loop)
Les fichiers de templates utilisent la boucle WordPress, un ensemble de fonctions PHP qui permettent de parcourir et d’afficher les contenus dynamiques. Un exemple typique de boucle est :
Aucun contenu disponible pour le moment.
Cette structure est fondamentale : elle permet à WordPress d’afficher les articles, les pages ou les résultats de recherche en fonction du contexte.
Créer un thème WordPress à partir de zéro
Étape 1 : Créer le dossier du thème
Pour créer un nouveau thème, commencez par :
- Accéder au répertoire
/wp-content/themes/de votre installation WordPress. - Créer un nouveau dossier, par exemple
mon-theme-personnalise. Évitez les espaces et les caractères spéciaux ; utilisez plutôt des tirets.
Étape 2 : Créer le fichier style.css
À l’intérieur de ce dossier, créez un fichier nommé style.css. En haut de ce fichier, ajoutez un commentaire contenant les métadonnées du thème :
/*
Theme Name: Mon Thème Personnalisé
Theme URI: https://exemple.com/mon-theme
Author: Votre Nom
Author URI: https://exemple.com
Description: Thème WordPress personnalisé, léger et optimisé.
Version: 1.0.0
Text Domain: mon-theme-personnalise
*/
Ce bloc de commentaires est indispensable pour que WordPress reconnaisse et affiche votre thème dans le tableau de bord, dans le menu Apparence > Thèmes.
En dessous de ce commentaire, vous pouvez commencer à ajouter vos styles CSS. Par exemple :
body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; margin: 0; padding: 0;
}
Étape 3 : Créer le fichier index.php
Créez ensuite un fichier index.php dans le même dossier. Ce fichier sera le template principal de votre thème. Commencez par un contenu minimal utilisant les fonctions get_header et get_footer :
> Aucun article trouvé.
Étape 4 : Créer header.php et footer.php
Pour séparer la structure de l’en-tête et du pied de page, créez deux fichiers : header.php et footer.php.
Exemple minimal de header.php :
>
>
Exemple minimal de footer.php :
Étape 5 : Déclarer les fonctionnalités dans functions.php
Le fichier functions.php est essentiel pour configurer les fonctionnalités de base de votre thème : prise en charge des images mises en avant, menus de navigation, chargement des scripts et feuilles de style, etc. Créez ce fichier et ajoutez :
gérée par WordPress add_theme_support( 'title-tag' ); // Support des images à la une add_theme_support( 'post-thumbnails' ); // Menus de navigation register_nav_menus( array( 'primary' => 'Menu principal', 'footer' => 'Menu pied de page', ) ); // Support du HTML5 pour plusieurs éléments add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', ) );
}
add_action( 'after_setup_theme', 'mon_theme_setup' ); function mon_theme_scripts { // Feuille de style principale wp_enqueue_style( 'mon-theme-style', get_stylesheet_uri, array, wp_get_theme->get( 'Version' ) );
}
add_action( 'wp_enqueue_scripts', 'mon_theme_scripts' );
Évitez d’utiliser @import dans les fichiers CSS pour charger des feuilles de style supplémentaires, car cela dégrade les performances. Préférez toujours wp_enqueue_style et wp_enqueue_script dans functions.php.
Créer un thème enfant (child theme)
Pourquoi un thème enfant ?
Un child theme permet de personnaliser un thème existant (thème parent) sans modifier directement ses fichiers. Ainsi, lorsque le thème parent est mis à jour, vos modifications restent intactes. C’est la méthode recommandée pour personnaliser un thème téléchargé depuis le répertoire officiel ou acheté sur une marketplace.
Étapes pour créer un thème enfant
Pour créer un thème enfant WordPress moderne, procédez comme suit :
- Dans
/wp-content/themes/, créez un nouveau dossier, par exemplemon-theme-enfant. - Dans ce dossier, créez un fichier
style.csscontenant au minimum :
/*
Theme Name: Mon Thème Enfant
Template: nom-du-theme-parent
Description: Thème enfant du thème parent "Nom du Thème Parent".
Author: Votre Nom
Version: 1.0.0
Text Domain: mon-theme-enfant
*/
La valeur de Template doit correspondre exactement au nom du dossier du thème parent. Depuis les versions récentes de WordPress, il est déconseillé d’utiliser @import dans style.css pour charger la feuille de style du thème parent. À la place, utilisez functions.php du thème enfant pour gérer les feuilles de style.
- Dans le même dossier, créez un fichier
functions.phpavec par exemple :
get( 'Version' ) );
}
add_action( 'wp_enqueue_scripts', 'mon_theme_enfant_styles' );
Ensuite, vous pouvez :
- copier un fichier du parent vers le thème enfant (par exemple
single.php) et le modifier pour surcharger son comportement ; - ajouter du CSS personnalisé dans le
style.cssdu thème enfant ; - ajouter des fonctions spécifiques dans le
functions.phpdu thème enfant.
Modèles et templates essentiels
Les principaux fichiers de templates
En plus de index.php, voici quelques fichiers de modèles très utiles pour structurer efficacement votre thème :
- front-page.php : utilisé pour la page d’accueil lorsqu’une page statique est définie comme page d’accueil dans les réglages de lecture.
- home.php : utilisé pour la liste des articles du blog lorsque la page d’accueil est configurée pour afficher les derniers articles.
- single.php : pour l’affichage d’un article individuel.
- page.php : pour l’affichage des pages statiques.
- archive.php : pour les archives (catégories, étiquettes, auteurs, dates).
- category.php et tag.php : pour personnaliser les archives de catégories et d’étiquettes.
- search.php : pour les résultats de recherche.
- 404.php : pour la page d’erreur 404 personnalisée.
Créer un modèle de page personnalisé
Vous pouvez créer des modèles de page spécifiques (pour une landing page, une page d’accueil spéciale, une page de contact, etc.). Pour cela, créez un fichier PHP, par exemple template-landing.php, et ajoutez en haut du fichier :
Ce template sera ensuite sélectionnable depuis l’éditeur de page WordPress dans la colonne de droite (bloc « Modèle »).
Bonnes pratiques pour un thème WordPress efficace
Optimiser les performances et le contenu
Un thème performant améliore le temps de chargement, l’expérience utilisateur et le référencement naturel. Voici quelques recommandations clés :
- Réduire la taille des images : utilisez des formats adaptés (JPEG pour les photos, PNG ou SVG pour les icônes et logos) et des outils de compression. Vous pouvez également tirer parti du format WebP si votre hébergement le permet.
- Charger les fichiers CSS et JavaScript de manière optimisée : utilisez
wp_enqueue_styleetwp_enqueue_scriptdansfunctions.php, évitez de lier directement des fichiers dans le HTML. Placez les scripts non critiques en pied de page et activez le chargement différé lorsque c’est possible. - Mettre en cache les ressources : utilisez des en-têtes de cache côté serveur et, si besoin, un plugin de cache pour générer des pages statiques. Le thème doit rester léger pour que ces outils soient efficaces.
- Limiter le nombre de polices externes : évitez de charger trop de familles de polices et de variantes. Privilégiez 1 à 2 familles de polices avec quelques graisses seulement.
- Désactiver les plugins inutiles : un thème bien conçu n’a pas besoin de plugins pour des fonctionnalités de base comme le menu ou la mise en page standard. Plus il y a de plugins, plus le risque de conflit et de lenteur augmente.
- Utiliser un CDN si nécessaire : un réseau de diffusion de contenu peut accélérer le chargement des images, fichiers CSS et JS pour les visiteurs éloignés de votre serveur.
Améliorer la structure et l’architecture du thème
Une architecture claire facilite la maintenance, les mises à jour et l’évolution du thème.
- Séparer le code logique du design : laissez la logique métier (fonctions PHP, requêtes, hooks) dans
functions.phpet les fichiers de templates, tandis que la présentation doit rester dans les fichiers CSS. Évitez de mélanger de longs blocs de styles en ligne dans les templates. - Utiliser des parties de template : lorsque vous avez des blocs répétés (par exemple l’affichage d’un article dans une liste), créez des fichiers partiels comme
content.phpoucontent-single.phpet incluez-les avecget_template_part. - Respecter les standards de codage WordPress : suivez les conventions de nommage, d’indentation et les recommandations de sécurité (échappement des données, vérification des capacités, etc.).
- Rendre le thème traduisible : utilisez les fonctions
__et_eavec un text domain défini dansstyle.csspour toutes les chaînes de texte visibles côté utilisateur.
Accessibilité et expérience utilisateur
Un bon thème doit être utilisable par le plus grand nombre, y compris les personnes utilisant des lecteurs d’écran ou naviguant uniquement au clavier.
- Utilisez une structure de titres logique (
,, etc.) pour aider les moteurs de recherche et les lecteurs d’écran à comprendre la hiérarchie du contenu. - Assurez un contraste suffisant entre le texte et l’arrière-plan.
- Ajoutez des attributs
altpertinents aux images importantes pour le contenu. - Rendez les éléments interactifs accessibles au clavier (menus, boutons, formulaires).
- Évitez les animations agressives ou difficiles à arrêter.
Sécurité de base dans un thème
Même si la sécurité repose beaucoup sur WordPress lui-même et les plugins, un thème doit respecter certains principes :
- Échapper toutes les données affichées dans les templates (par exemple
esc_html,esc_attr,esc_url) lorsqu’elles proviennent de l’utilisateur ou de la base de données. - Vérifier les droits de l’utilisateur (
current_user_can) avant d’exécuter des actions sensibles dans l’interface d’administration. - Ne jamais stocker d’identifiants, de mots de passe ou de clés API en clair dans les fichiers du thème.
Conseils SEO on-page pour votre thème WordPress
Le thème joue un rôle important dans le référencement naturel WordPress, même si le contenu reste l’élément le plus déterminant.
- Balises de titre optimisées : laissez WordPress (ou un plugin SEO) gérer la balise
via la prise en charge detitle-tag. Évitez de la coder en dur. - Balises Hn structurées : un seul
par page, puis des,logiques pour les sous-titres. Ne mettez pas le logo ensur toutes les pages si le titre du contenu doit être le. - Liens internes clairs : les menus, les breadcrumbs (fil d’Ariane) et les sections de contenus connexes doivent être bien intégrés dans les templates.
- Balises méta et données structurées : laissez la possibilité d’ajouter des metas personnalisées et des données structurées via un plugin SEO sans les bloquer par des surcharges de templates trop rigides.
- Performances et mobile : un thème responsive, rapide et léger est mieux classé et offre une meilleure expérience utilisateur.
Tester et activer votre thème
Activer le thème dans le tableau de bord
Une fois vos fichiers de base créés (style.css, index.php, header.php, footer.php et functions.php), rendez-vous dans Apparence > Thèmes dans l’administration WordPress. Votre thème doit apparaître dans la liste. Cliquez sur « Activer » pour l’utiliser sur votre site.
Vérifier l’affichage des principaux types de contenu
Testez les points suivants :
- la page d’accueil (articles récents ou page statique selon votre configuration) ;
- les articles de blog individuels ;
- les pages statiques ;
- les archives (catégories, étiquettes) ;
- les résultats de recherche ;
- la page 404 ;
- le menu principal et, le cas échéant, les menus secondaires et le pied de page.
Corrigez progressivement les problèmes d’affichage en ajustant la structure HTML, les classes CSS et les boucles WordPress.
Aller plus loin : blocs, constructeurs et FSE
Avec les versions récentes de WordPress, vous pouvez aussi créer des thèmes basés sur les blocs (Full Site Editing), en utilisant des fichiers block-templates et un fichier theme.json. Ces thèmes permettent de modifier l’entière mise en page du site directement dans l’éditeur de site. Vous pouvez également utiliser des constructeurs de thèmes visuels (Elementor, SeedProd, Beaver Themer, etc.) pour générer une grande partie de la structure sans écrire de code, tout en gardant la possibilité de créer ou d’ajuster un thème classique lorsque vous avez besoin d’un contrôle plus fin et de meilleures performances.
Conclusion
Créer un thème WordPress efficace, rapide et personnalisable repose sur une bonne compréhension de la structure des fichiers, de la hiérarchie des templates et des bonnes pratiques de développement. En partant d’un thème classique minimal (avec style.css, index.php, header.php, footer.php et functions.php), puis en ajoutant progressivement des templates spécifiques, un thème enfant pour vos personnalisations et des optimisations de performance, vous obtenez un environnement parfaitement adapté à vos besoins et prêt pour un excellent référencement naturel.
Besoin d'aide avec votre SEO ?
Notre équipe d'experts peut vous aider à optimiser votre site e-commerce