style.css et functions.php
style.css : le fichier d'identité du thème
style.css joue un double rôle : il contient les métadonnées du thème (lues par WordPress) et tes styles CSS. Les métadonnées se placent dans un commentaire spécial en tout début de fichier.
/*
Theme Name: MonTheme
Theme URI: https://monsite.local
Description: Mon premier thème WordPress fait maison.
Author: Ton Nom
Author URI: https://monsite.local
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: montheme
*/
/* tes styles CSS ici */
Le champ Theme Name est obligatoire — c'est le nom qui apparaît dans l'administration WordPress. Les autres champs sont optionnels mais recommandés.
Le Text Domain doit correspondre exactement au nom du dossier du thème. Il est utilisé pour les traductions (__('texte', 'montheme')).
Activer le thème
Va dans ton administration WordPress → Apparence → Thèmes. Tu dois voir "MonTheme" apparaître. Clique sur Activer. La page d'accueil est sûrement blanche pour l'instant — normal, index.php est vide.
functions.php : le cœur de la configuration
functions.php est chargé automatiquement par WordPress. Il sert à :
- Charger les feuilles de style et scripts (
wp_enqueue_style/wp_enqueue_script) - Déclarer les fonctionnalités supportées (
add_theme_support) - Enregistrer les menus et sidebars
- Ajouter des fonctions utilitaires
Charger le CSS correctement
On ne lie jamais un CSS avec une balise <link> directement dans le HTML. On passe par l'hook wp_enqueue_scripts — c'est la bonne pratique WordPress :
<?php
add_action( 'wp_enqueue_scripts', 'montheme_enqueue_assets' );
function montheme_enqueue_assets() {
// Feuille de style principale (style.css à la racine du thème)
wp_enqueue_style(
'montheme-style', // handle unique
get_stylesheet_uri(), // URL de style.css
[], // dépendances
'1.0.0' // version (cache busting)
);
}
Chaque style et script doit avoir un handle unique (premier paramètre). Préfixe-le avec le slug de ton thème pour éviter les conflits avec les plugins.
add_theme_support : activer les fonctionnalités
WordPress désactive certaines fonctionnalités par défaut. Il faut les déclarer explicitement :
add_action( 'after_setup_theme', 'montheme_setup' );
function montheme_setup() {
// Images à la une sur les articles et pages
add_theme_support( 'post-thumbnails' );
// Titre géré par WordPress (balise <title> automatique)
add_theme_support( 'title-tag' );
// Compatibilité avec l'éditeur Gutenberg
add_theme_support( 'wp-block-styles' );
add_theme_support( 'align-wide' );
// Flux RSS automatiques
add_theme_support( 'automatic-feed-links' );
}
post-thumbnails
Sans cette ligne, le champ "Image à la une" n'apparaît pas dans l'éditeur d'articles. Toujours l'activer.
title-tag
Laisse WordPress générer la balise <title> automatiquement. Sans ça, tu dois l'écrire manuellement dans header.php et gérer toi-même le format pour chaque type de page. Toujours l'activer.
Hooks : add_action en quelques mots
WordPress fonctionne avec un système de hooks. Un hook, c'est un point d'accroche : WordPress annonce "je suis sur le point de faire X" et ton code peut se brancher dessus.
add_action( 'nom_du_hook', 'ma_fonction' ) dit à WordPress : "quand tu arrives au hook nom_du_hook, exécute ma_fonction()".
after_setup_theme— se déclenche tôt, après le chargement du thème. Pour la config.wp_enqueue_scripts— se déclenche lors de la préparation des assets. Pour les styles/scripts.
Ne mets jamais de code directement dans functions.php sans le placer dans une fonction accrochée à un hook. WordPress exécute ce fichier tôt — un code mal placé peut planter tout le site.
style.csscommence obligatoirement par le bloc de métadonnées en commentaireTheme Name= nom affiché,Text Domain= slug du dossier- On charge les styles via
wp_enqueue_style()dans le hookwp_enqueue_scripts add_theme_support()active les fonctionnalités WordPress — toujours activerpost-thumbnailsettitle-tag- Un hook = un point d'accroche.
add_action()branche une fonction dessus