Thème basé sur des blocs

Ces fonctionnalités sont encore expérimentales et limitées à l’extension Gutenberg. « Expérimental » signifie qu’il s’agit d’une pré-version (bêta) susceptible de recevoir des modifications importantes voire de rupture en fonction des retours des personne qui utilisent l’extension, qui contribuent au projet, ou qui développent ce type de thèmes.

Cette documentation est partagée en avant-première afin de présenter ce qui a déjà été fait et d’avoir en retour les avis de personnes ayant expérimenté les API proposées. Vous pouvez participer aux réunions hebdomadaires sur les canaux slack #core-editor, ou #fse-outreach-experiment, ou de manière asynchrone en ouvrant des « issues » Github.

Qu’est-ce qu’un thème basé sur les blocs ?

Un thème WordPress basé sur les blocs fonctionne avec des modèles entièrement composés de blocs de sorte que l’éditeur peut être utilisé pour modifier non seulement le contenu des publications (pages, articles…), mais aussi toutes les zones du site : en-tête, pied de page, barres latérales, etc.

Quelle est la structure d’un thème basé sur les blocs ?

Un thème simple sera structuré ainsi :

theme
|__ style.css
|__ theme.json
|__ functions.php
|__ block-templates
    |__ index.html
    |__ single.html
    |__ archive.html
    |__ ...
|__ block-template-parts
    |__ header.html
    |__ footer.html
    |__ sidebar.html
    |__ ...

Le dossier block-template-parts est facultatif, par contre le dossier block-templates doit exister et inclure un fichier index.html pour que l’éditeur reconnaisse un thème basé sur l’utilisation de blocs.

La différence principale avec les thèmes existants réside dans le fait que les modèles et éléments de modèles relatifs à la hiérarchie classique de WordPress sont au format HTML au lieu d’être au format PHP et qu’ils sont intégralement composés de blocs. De plus, cet exemple inclut un fichier theme.json (en anglais) pour certains styles.

Qu’est-ce qu’un modèle de bloc ?

Un modèle de blocs est composé d’une liste de blocs. Tout bloc WordPress peut être utilisé dans un modèle. Les modèles peuvent également partager des parties de leur contenu en utilisant les « éléments de modèles ». Par exemple, tous les modèles de blocs peuvent utiliser le même en-tête en incluant un élément de modèle distinct header.html.

Voici un exemple de modèle de bloc :

<!-- wp:site-title /-->

<!-- wp:image {"sizeSlug":"large"} -->
<figure class="wp-block-image size-large">
	<img src="https://cldup.com/0BNcqkoMdq.jpg" alt="" />
</figure>
<!-- /wp:image -->

<!-- wp:group -->
<div class="wp-block-group">
	<!-- wp:post-title /-->
	<!-- wp:post-content /-->
</div>
<!-- /wp:group -->

<!-- wp:group -->
<div class="wp-block-group">
	<!-- wp:heading -->
	<h2>Footer</h2>
	<!-- /wp:heading -->
</div>
<!-- /wp:group -->

Comment écrire et modifier ces modèles ?

Toute personne disposant des permissions adéquates (exemple : un compte WordPress d’administration (« administrator ») pourra accéder aux modèles sous l’administration WordPress, les modifier dans des sections dédiées et les exporter.

Gutenberg 11.8 propose deux façons de créer et modifier des modèles.

Modifier les modèles via l’écran Modèles du Tableau de bord

Vous pouvez accéder à la modification des modèles (Écran Modèles) depuis le Tableau de bord, via le menu Apparence puis Modèles (menu temporaire) soit la page wp-admin/edit.php?post_type=wp_template. Ajoutez des blocs dans un modèle puis passez en mode éditeur de code pour récupérer le code HTML du modèle lorsque vous aurez terminé. Vous pouvez ensuite coller ce code dans le fichier correspondant se trouvant dans le répertoire du thème.

Veuillez noter que cette section ne répertorie pas les modèles fournis avec votre thème ou ceux pour lesquels vous aurez préalablement créé des fichiers HTML vides. Elle ne répertorie que les modèles créés sous l’administration sur le site WordPress sur lequel vous travaillez.

Modifier les modèles dans l’Éditeur de site

Commencez par créer un fichier HTML vide dans le répertoire de votre thème en vous basant sur la hiérarchie des modèles . Par exemple : montheme/block-templates/index.html. Puis ouvrez l’Éditeur de site. Votre nouveau modèle devrait apparaitre en tant que modèle actif et être vide. Ajoutez des blocs dans ce modèle comme vous le feriez en utilisant Gutenberg. Vous pouvez créer et ajouter des éléments de modèles directement à partir du bloc Élément de modèle (« Template part »).

Faites ainsi avec tous les modèles que vous souhaitez ajouter à votre thème.

Lorsque vous avez terminé, cliquez sur l’outil Exporter accessible via le bouton Options (trois points), situé à la droite de la barre supérieure de l’éditeur de site. Vous pourrez ainsi télécharger un fichier ZIP contenant tous les modèles et éléments de modèles que vous avez créés sous l’éditeur et que vous pourrez placer dans le dossier de votre thème.

Veuillez noter que lorsque vous faites cet export, le balisage du bloc Élément de modèle inclut un identifiant de publication (postID) qui peut être supprimé en toute sécurité si vous redistribuez votre thème.

Modèles de types de publication personnalisés

En enregistrant les modèles à partir du menu Apparence, puis Modèles (menu temporaire) du Tableau de bord, vous pourrez surcharger les modèles présents dans le dossier de votre thème.

Exemple : en utilisant le mot « single » comme titre de votre modèle et en l’enregistrant, ce modèle aura la priorité sur le fichier single.html présent dans le dossier de votre thème.

Notez cependant qu’il ne surchargera aucun des modèles ayant une spécificité plus élevée dans la hiérarchie des modèles. La résolution va du plus spécifique au moins spécifique, en recherchant d’abord un modèle de publication personnalisé, puis un modèle de thème, et ce à chaque niveau.

Blocs de thème

Certains blocs ont été spécialement conçus pour les thèmes. Par exemple, vous utiliserez probablement le bloc Titre du Site dans l’en-tête de votre site, et votre modèle « single » inclura probablement un bloc Titre de la publication ainsi qu’un bloc Contenu de la publication.

Comme nous n’en sommes qu’au début du processus, le nombre de blocs dédiés à ce type de modèles est encore faible mais d’autres seront ajoutés au fur et à mesure. La version 11.8 de Gutenberg propose les blocs suivants :

  • Boucle de requête
  • Titre de la publication
  • Contenu de la publication
  • Date de publication
  • Extrait de la publication
  • Image mise en avant de la publication
  • Connexion/déconnexion
  • Navigation
  • Élément de modèle – « Template Part »
  • Auteur de la publication – « Post Author »
  • Commentaire de la publication – « Post Comment »
  • Commentaires de la publication – « Post Comments »
  • Compteur de commentaires – « Post Comments Count »
  • Formulaire de commentaires – « Post Comments Form »
  • Lien vers les commentaires d’une publication – « Post Comments Link »
  • Description du terme – « Term Description »
  • Listes des publications
  • En-tête
  • Pied de page
  • Article suivant
  • Article précédent

Styles

L’un des aspects les plus importants des thèmes (si ce n’est le plus important) est le style. Pour l’instant vous pouvez ajouter des styles via des feuilles de styles déclarées de manière classique, mais le fichier theme.json (en anglais) qui se chargera à l’avenir de gérer les styles du thème offre déjà beaucoup d’options.

Thèmes classiques

Les personnes utilisant des thèmes classiques peuvent également créer des modèles de blocs personnalisés et les utiliser dans leurs pages et types de publications personnalisés prenant en charge les modèles de page.

Les autrices et auteurs de thèmes peuvent désactiver cette fonctionnalité en supprimant le support block-templates dans leur fichier functions.php.

remove_theme_support( 'block-templates' );

Ressources

Traduit par Loïc Antignac
Relu par Jb Audras & Jenny Dupuy
Dernière mise à jour le 31 octobre 2021

Contribuer à la documentation en français de WordPress