Leçon 3 / 10
Leçon 03 · ~25 min · Partie 1 — Les fondations

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.

style.css
/*
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 :

functions.php
<?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 :

functions.php
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.

// à retenir
  • style.css commence obligatoirement par le bloc de métadonnées en commentaire
  • Theme Name = nom affiché, Text Domain = slug du dossier
  • On charge les styles via wp_enqueue_style() dans le hook wp_enqueue_scripts
  • add_theme_support() active les fonctionnalités WordPress — toujours activer post-thumbnails et title-tag
  • Un hook = un point d'accroche. add_action() branche une fonction dessus