Aller au contenu
Rechercher
Discutons
Menu

Dossier thème WooCommerce · chapitre 2 sur 6

Le squelette d'un thème en blocs pour une boutique

Un thème en blocs pour WooCommerce tient en sept fichiers, sans une ligne de PHP. Mais si ton en-tête ne prévoit pas le panier, WooCommerce l'y ajoute lui-même, à sa façon. Au labo, ça a cassé la mise en page. Voilà le squelette complet, et comment garder la main.

Par Sébastien GrillotTesté au labo : 19 octobre 2026Publié : 19 octobre 2026
Testé sur
WooCommerce 11.2.1 · WordPress 7.1.3
Thème
Labo Boutique 1.0.0, construit au labo
PHP dans le thème
Aucun

L'essentiel en 3 points

  1. Un thème en blocs n'a besoin que de style.css et templates/index.html ; pour une boutique, compte sept fichiers, sans PHP ni functions.php.
  2. Si ton en-tête n'a ni mini-panier ni compte client, WooCommerce les insère après ta navigation, au risque de casser ta mise en page.
  3. Place toi-même les blocs woocommerce/customer-account et woocommerce/mini-cart dans ton en-tête : WooCommerce n'en ajoute alors aucun en double.

2.1Les fichiers du thème

Un thème en blocs n'exige que deux fichiers : style.css, pour son nom, et templates/index.html, le modèle par défaut. Pour une boutique utilisable, on en a écrit sept au labo :

labo-boutique/
├── style.css               le nom et la description du thème
├── theme.json              couleurs, police, tailles, boutons
├── parts/
│   ├── header.html         l'en-tête : titre, navigation, compte, mini-panier
│   └── footer.html         le pied de page
└── templates/
    ├── index.html          le modèle par défaut (liste d'articles)
    ├── page.html           les pages
    └── single.html         les articles
L'arborescence du thème Labo Boutique (wp-content/themes/labo-boutique)

Pas de functions.php, pas de PHP du tout. Les modèles propres à la boutique (fiche produit, catalogue) viennent au chapitre 4 : tant que le thème ne les fournit pas, WooCommerce utilise les siens.

2.2style.css, la carte d'identité

Dans un thème en blocs, style.css ne contient souvent aucun style. Son en-tête suffit à WordPress pour reconnaître le thème.

/*
Theme Name: Labo Boutique
Theme URI: https://insidedaweb.com/dossiers/theme-woocommerce/
Author: Inside da WeB (labo)
Description: Thème en blocs minimal pour WooCommerce, construit au labo d'Inside da WeB : une palette, une police système, les modèles de boutique réécrits en français.
Requires at least: 7.0
Tested up to: 7.1
Requires PHP: 8.1
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: labo-boutique
*/
style.css du thème Labo Boutique

« Requires at least: 7.0 » n'est pas un hasard : c'est la version minimale de WordPress que demande WooCommerce 11.2.1. Inutile d'annoncer une compatibilité que la boutique n'aura pas.

2.3L'en-tête, avec la boutique dedans

L'en-tête est une « partie de modèle » : un fichier HTML fait de blocs, réutilisé par tous les modèles. Celui du labo aligne le titre du site à gauche, et à droite la navigation, l'icône du compte client et le mini-panier.

<!-- wp:group {"style":{"spacing":{"padding":{"top":"1rem","bottom":"1rem"}}},"backgroundColor":"vert-pale","layout":{"type":"constrained","contentSize":"1200px"}} -->
<div class="wp-block-group has-vert-pale-background-color has-background" style="padding-top:1rem;padding-bottom:1rem">
<!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
<div class="wp-block-group">
<!-- wp:site-title {"level":0} /-->
<!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
<div class="wp-block-group">
<!-- wp:navigation {"overlayMenu":"mobile","layout":{"type":"flex","justifyContent":"right"}} -->
<!-- wp:navigation-link {"label":"Boutique","url":"/boutique/","kind":"custom"} /-->
<!-- wp:navigation-link {"label":"Objets","url":"/categorie-produit/objets/","kind":"custom"} /-->
<!-- wp:navigation-link {"label":"Vêtements","url":"/categorie-produit/vetements/","kind":"custom"} /-->
<!-- /wp:navigation -->
<!-- wp:woocommerce/customer-account {"displayStyle":"icon_only","iconStyle":"line","iconClass":"wc-block-customer-account__account-icon"} /-->
<!-- wp:woocommerce/mini-cart /-->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:group -->
parts/header.html du thème Labo Boutique

Deux choses à remarquer. La navigation contient ses liens en dur (Boutique, Objets, Vêtements) : c'est le point de départ, que l'éditeur de site te laissera ensuite modifier. Et les deux derniers blocs viennent de WooCommerce : woocommerce/customer-account, l'icône qui mène au compte client, et woocommerce/mini-cart, le panier qui s'ouvre sur le côté. Leurs noms et leurs rôles sont dans la référence des blocs de WooCommerce.

2.4Le piège : WooCommerce s'invite dans ton en-tête

Ma première version de cet en-tête n'avait ni le compte client ni le mini-panier : juste le titre et la navigation. Je voulais voir ce que WooCommerce en ferait.

Il les a ajoutés tout seul. Sur toutes les pages, l'en-tête affichait l'icône du compte et celle du panier, que je n'avais jamais écrites. C'est un mécanisme de WordPress, les block hooks : une extension peut accrocher ses blocs à côté d'un bloc du thème. WooCommerce accroche les siens juste après la navigation.

En-tête du thème Labo Boutique sans compte ni panier déclarés : WooCommerce a inséré l'icône du compte client au milieu de l'en-tête, après la navigation, et le mini-panier tout à droite
Première version de l'en-tête : WooCommerce y a inséré le compte et le panier. L'icône du compte se retrouve au milieu. Capture du labo, 19 octobre 2026.

Le résultat était fonctionnel, mais pas à sa place. Dans mon groupe aligné « espace entre les éléments », les deux blocs ajoutés se sont répartis comme des éléments à part entière : le compte client au milieu de la barre, le panier à l'extrême droite.

Testé au labo : l'en-tête, avec et sans les blocs WooCommerce

  • En-tête sans compte ni panier : WooCommerce insère woocommerce/customer-account et woocommerce/mini-cart après la navigation, sur toutes les pages.
  • En-tête qui les place lui-même (le fichier ci-dessus) : un seul compte client et un seul mini-panier dans l'en-tête, exactement là où on les a mis. WooCommerce n'en ajoute pas de second.

La règle est simple : place toi-même ces deux blocs dans ton en-tête, là où tu les veux.

2.5Le pied de page et les modèles de base

Le pied de page du labo tient en un paragraphe, avec deux liens : les conditions générales de vente et le compte client. Pour une vraie boutique, c'est là que vont les mentions légales, la page de livraison, et le lien de rétractation que la loi impose depuis juin 2026 (le dossier WooCommerce explique pourquoi).

Les trois modèles de base sont courts. Le modèle des pages, par exemple, ne fait qu'empiler l'en-tête, le titre, le contenu et le pied de page :

<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"}} -->
<main class="wp-block-group">
<!-- wp:post-title {"level":1} /-->
<!-- wp:post-content {"layout":{"type":"constrained"}} /-->
</main>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
templates/page.html du thème Labo Boutique

Au labo, les pages Panier et Mon compte affichaient bien l'en-tête et le pied de page du thème. La page de commande, non : WooCommerce lui applique son propre modèle, « Page : validation de la commande », avec un en-tête allégé, sans menu ni pied de page, pour ne pas distraire l'acheteur. On le retrouve au chapitre 4.

Avec ces sept fichiers, le thème s'active et la boutique fonctionne, avec les modèles de WooCommerce pour les fiches et le catalogue. Il reste à l'habiller : c'est le rôle de theme.json.

Sources

Historique de ce chapitre

  • 19 octobre 2026 : première version, thème Labo Boutique sur WooCommerce 11.2.1.
Sébastien Grillot

Co-fondateur de Kōeki · Consultant SEO et IA

Sébastien Grillot

Consultant SEO depuis 2009 : c'est ici, sur Inside da WeB, qu'il a monté sa première agence, spécialisée dans l'e-commerce sous WordPress. Il construit aujourd'hui ses propres outils, thèmes compris, avec l'IA.

FermerEn-tête du thème Labo Boutique sans compte ni panier déclarés : WooCommerce a inséré l'icône du compte client au milieu de l'en-tête, après la navigation, et le mini-panier tout à droite