# TT1 Blocks : ce que le premier thème bloc officiel enseigne aux développeurs

> TT1 Blocks, version expérimentale de Twenty Twenty-One entièrement construite en blocs, sert de laboratoire grandeur nature. Ce qu'on retient de son étude approfondie.

- Auteur : Clément Hadrot
- Publié le : 2021-12-20
- Mis à jour le : 2021-12-20
- Catégorie : FSE
- URL : https://wpmoderne.dev.wordpress-developpement.fr/fse/tt1-blocks-premier-theme-bloc-officiel-lecons/

## L’essentiel

- Un thème bloc n'a presque plus de fichiers PHP de template
- Le dossier block-templates remplace les fichiers classiques
- Certaines limites restent bloquantes pour un projet client

TT1 Blocks n'est pas un thème destiné à la production. C'est un laboratoire : une réécriture expérimentale de Twenty Twenty-One entièrement pensée autour des blocs de thème, distribuée séparément pour permettre à la communauté de tester en conditions réelles ce que deviendra l'écriture d'un thème une fois le Full Site Editing disponible. On l'a installé sur un site de test pendant plusieurs semaines pour comprendre ce qui change concrètement.

La première surprise, en ouvrant l'arborescence du thème, tient à sa taille : là où un thème classique aligne des dizaines de fichiers PHP (`single.php`, `page.php`, `archive.php`, `search.php`…), TT1 Blocks n'en compte presque plus aucun. La logique de gabarit s'est déplacée ailleurs.

## Une arborescence entièrement repensée

Les templates ne vivent plus dans des fichiers `.php` à la racine du thème, mais dans un dossier dédié contenant des fichiers HTML :

```
tt1-blocks/
├── block-templates/
│   ├── index.html
│   ├── single.html
│   ├── archive.html
│   └── search.html
├── block-template-parts/
│   ├── header.html
│   └── footer.html
├── theme.json
└── functions.php
```

Chaque fichier HTML contient une séquence de commentaires de blocs, le format que génère l'éditeur lorsqu'on exporte une composition. Il n'y a plus de boucle `WHILE`, plus de `get_header()` explicite : le bloc Template Part s'en charge en référençant directement le fichier correspondant.

## theme.json, la nouvelle source de vérité des styles

> L'essentiel à retenir : Un thème bloc n'a presque plus de fichiers PHP de template ; Le dossier block-templates remplace les fichiers classiques ; Certaines limites restent bloquantes pour un projet client

Autre changement notable : les couleurs, tailles de police et espacements ne sont plus définis dans le Customizer ni dans une feuille de style classique, mais déclarés dans un fichier `theme.json` à la racine du thème. C'est ce fichier qui alimente les palettes proposées dans l'éditeur, garantissant une cohérence entre ce que voit un rédacteur dans l'interface et ce qui s'affiche côté public.

## Ce qui fonctionne déjà bien

- La création de nouveaux templates directement depuis l'interface d'administration.
- La cohérence des styles entre l'éditeur et le rendu public, grâce à `theme.json`.
- La réutilisation des template parts entre plusieurs gabarits sans duplication de code.

## Ce qui reste bloquant pour un projet client

Malgré ces avancées, plusieurs limites empêchent, à ce stade, d'envisager TT1 Blocks pour un site en production. La gestion des formulaires personnalisés, l'intégration de scripts tiers complexes, ou encore le comportement de certains plugins de e-commerce n'ont pas été pensés pour un thème sans fichiers de template PHP traditionnels. Beaucoup d'extensions s'attendent encore à trouver des hooks classiques absents de cette nouvelle structure.

## Ce que la démarche enseigne malgré tout

L'intérêt de TT1 Blocks n'est pas de fournir un thème utilisable tel quel, mais de donner une idée fidèle de ce à quoi ressemblera l'écriture d'un thème une fois le Full Site Editing disponible dans le cœur de WordPress. Pour un développeur de thèmes, c'est l'occasion de se familiariser avec `theme.json`, avec la logique de dossiers `block-templates`, et avec les limites actuelles des blocs de contenu dynamique.

## Un détail révélateur : le fichier functions.php

Contrairement à ce qu'on pourrait imaginer, `functions.php` n'a pas disparu de TT1 Blocks. Il reste indispensable pour l'enregistrement des tailles d'image, l'ajout des balises `<title>` automatiques via `add_theme_support( 'title-tag' )`, ou encore l'inscription des styles et scripts du thème. La bascule vers les blocs de thème déplace la structure des gabarits, mais ne supprime pas le besoin d'une couche PHP pour tout ce qui relève de la configuration et du chargement des ressources.

C'est d'ailleurs un point rassurant pour un développeur qui découvrirait ce thème sans préparation : les réflexes acquis sur `functions.php` restent valables, seule la façon d'écrire les gabarits eux-mêmes change en profondeur.

## En résumé

TT1 Blocks confirme une intuition partagée depuis quelques mois : écrire un thème demain ressemblera beaucoup moins à écrire un thème aujourd'hui. Moins de PHP dans les gabarits, plus de déclaratif, une nouvelle source de vérité pour les styles, mais toujours une base PHP pour la configuration. Reste à voir comment cette base expérimentale se stabilisera avant d'atterrir, sous une forme ou une autre, dans une version stable de WordPress.
