Formation « Développer des blocs Gutenberg sur mesure avec React »

Pourquoi développer ses propres blocs natifs avec Gutenberg (sans ACF) ?

Lecture : 8 minutes • 0

Gutenberg nous permet d’écrire des contenus plus riches rapidement, mais c’est avant tout une superbe opportunité pour nous les développeurs afin de créer des blocs sur mesure à nos besoins et ceux de nos clients.

L’éditeur de blocs, c’est le nouveau standard de WordPress, avec ou sans vous ! Et cette révolution est en cours : de nombreuses agences ont migré vers le Full Site Editing, ou sont en passe le faire.

Il y a plein d’avantages à cela, que l’on va aborder dans ce cours. Vous êtes encore beaucoup à être dubitatifs, et à juste titre, vu le développement chaotique du projet depuis 2018.

Mais rassurez-vous, tout va bien désormais, l’outil est largement stable, et avec la création de blocs sur mesure, vous ne connaitrez aucune limite technique !

Pourquoi choisir Gutenberg et le FSE ?

Tout d’abord, commençons par les avantages d’opter pour l’éditeur de blocs natifs de WordPress lorsque vous créez vos sites.

verrouillé Vidéo premium

Cette vidéo est réservée aux détenteurs de l’offre premium.
Envie de nous rejoindre ?

Choisir une formule

J’ai déjà abordé le sujet dans la formation Full Site Editing, notamment dans le cours dédié aux agence web. Voici en substance mes principaux arguments en faveur de Gutenberg et du Full Site Editing :

Un éditeur visuel temps réel

Tout d’abord, l’éditeur de blocs est très visuel, on voit directement le résultat final, au même titre que les éditeurs concurrents comme Elementor ou Divi. On a atteint le véritable WYSIWYG.

L'inteface de l'éditeur Gutenberg, et son menu d'insertion de blocs.
L’éditeur Gutenberg en action

Chaque élément est un bloc indépendant du reste, ce qui permet de modifier plus facilement une partie précise de la page.

L’éditeur fournit tout un tas de blocs de mise en page comme les colonnes, les grilles, les groupes et les rangées.

Je ne vous cache pas qu’il y a un petit temps d’adaptation pour la prise en main, et encore quelques défauts d’expérience utilisateur, mais une fois à l’aise, c’est un vrai plaisir.

Information

L’éditeur montre en temps réel et au pixel près le rendu qu’aura le site en front-end.

Créer des sites plus rapidement

Avec plusieurs années d’expériences en Full Site Editing, je peux annoncer qu’on réalise des sites en moyenne 30% plus rapidement qu’avec un autre constructeur, ou qu’avec l’ancienne technique qui nécessitait l’utilisation des champs ACF.

Ce qui nous permet d’être plus rapide, c’est le conditionnement des styles globaux grâce au theme.json, qui nous permet d’établir une ligne directrice pour respecter à la lettre le Design System.

Le panneau des styles de WordPress.
Le panneau de gestion des styles globaux

L’autre concept qui va nous faire gagner un maximum de temps, sur un projet mais également d’un projet à l’autre, c’est la création de compositions réutilisables :

L'interface de gestion des compositions dans WordPress.
La bibliothèque des compositions réutilisables d’un site

Celles-ci peuvent représenter des éléments d’interface, des sections ou même des pages complètes. Ces compositions sont réalisées via l’éditeur. Il n’y a donc pas besoin de passer du temps à intégrer le HTML et le CSS, même si on peut personnaliser tout cela au besoin.

L’avantage, c’est que les couleurs, espacements et typographies sont notées sous forme de variables CSS. Du coup, chaque composition s’adaptera automatiquement d’un site à un autre.

Ainsi, on évite de réinventer la roue à chaque projet. Sur le long terme, on met en place un catalogue géant de compositions prêtes à l’emploi, ou à défaut faciles à réutiliser.

Information

En capitalisant sur les éléments d’un projet à un autre, on gagne de plus en plus de temps à chaque projet.

Une meilleure expérience utilisateur pour vos clients

Le très gros avantage de Gutenberg par rapport à ses concurrents, c’est qu’il a été conçu pour que son interface soit la plus simple et la plus minimale possible. Pas d’options à outrance comme sur Elementor.

Contrairement aux autres constructeurs, on peut définir, via le theme.json, les fonctionnalités que l’on souhaite activer, ou au contraire cacher. Ici par exemple avec le sélecteur de couleurs :

Le sélecteur de couleurs de Gutenberg avec plusieurs niveaux d'options.
À gauche, le sélecteur de couleurs toutes options, et à gauche, sa version simplifiée

Et ça, c’est vraiment un game changer, dans le sens où vous allez offrir à vos clients uniquement les options qu’il aura besoin.

Impossible dans ce cas qu’il sélectionne une couleur hors charte ! Finis donc les sites « sapin de Noël ».

Technologies plus modernes et plus rapides

Gutenberg a entièrement été réalisé en React JS, ce qui change de nos habitudes. La plupart des développeurs WordPress connaissent surtout le PHP.

Du coup, la transition n’est pas forcément évidente, même si en général, c’est beaucoup plus simple que ce qui n’y parait.

Par contre, ça va nous donner plusieurs avantages : tout est fait en temps réel, de manière fluide et sans délai, et surtout, Il n’y a plus de rechargement de page à l’enregistrement, ce qui était un gros point faible de l’ancien éditeur, dans le passé.

Information

Gutenberg est réalisé en React, comme la grosse majorité des applications web aujourd’hui au final ! Ce n’est donc pas un choix anodin.

Un éditeur natif et extensible

Et enfin toutes ces technologies sont natives et intégrées dans WordPress. Il n’y a donc pas besoin d’installer d’extensions tierces qui vont alourdir les performances et l’interface utilisateur.

De plus, WordPress fournit une API complète pour venir interagir avec cet éditeur : on peut ajouter des menus de partout, déclarer de nouveaux blocs, de nouvelles catégories de blocs… bref, personnaliser au maximum l’expérience utilisateur.

Conseil

Bref, Gutenberg et le FSE offrent un véritable avantage concurrentiel pour votre agence. Passez-y avant les autres !

Pourquoi développer ses blocs sur mesure ?

Créer des blocs sur mesure, c’est s’assurer la capacité de repousser les limites techniques de WordPress. Concrètement, vous pouvez absolument TOUT faire avec des blocs.

verrouillé Vidéo premium

Cette vidéo est réservée aux détenteurs de l’offre premium.
Envie de nous rejoindre ?

Choisir une formule

Et c’est justement ça leur but : isoler une fonctionnalité attendue, et la réaliser sous forme d’un bloc qu’on pourrait intégrer de partout dans le contenu ou dans le site.

De cette manière, on ne réfléchit plus le site comme un monolithe, mais comme une somme de composants agiles et maléables.

Quelques exemples : un système de filtre, un formulaire, un slider d’articles, un sommaire automatiquement généré, afficher une extension :

SEOPress – On-site SEO & Analytics

SEOPress – On-site SEO & Analytics

SEOPress, une extension SEO simple, rapide, puissante et complète pour WordPress. Améliorez votre classement dans les moteurs de recherche, entièrement en marque blanche. Et maintenant avec l‘IA.

Par Benjamin Denis

Par exemple, ce bloc s’occupe d’aller chercher automatiquement les informations de l’extension sur WordPress.org, et je le vois s’afficher en temps réel lorsque j’édite mon cours.

Enfin, un bloc est agnostique du site sur lequel il est installé. Cela veut dire que vous allez pouvoir l’installer très facilement sur d’autres sites par la suite.

Comme pour les compositions, vous allez vous composer au fur et à mesure une bibliothèque de blocs en tous genres pour répondre aux besoins de vos clients.

Et plus vous en aurez, plus vous gagnerez du temps sur les prochains projets !

Conseil

Au final, un bloc, c’est comme une extension : il permet d’ajouter une fonctionnalité sur le site, que l’on peut insérer où l’on veut dans le site.

Blocs ACF vs blocs natifs

La question qui revient souvent, c’est celle-ci : vaut-il mieux créer ses blocs avec ACF ou en React, nativement ?

verrouillé Vidéo premium

Cette vidéo est réservée aux détenteurs de l’offre premium.
Envie de nous rejoindre ?

Choisir une formule

La question est légitime car votre choix aura potentiellement des grosses implications sur votre méthodologie de travail.

Dans la formation dédiée à ACF, j’ai justement écrit un cours sur la création de blocs Gutenberg via ACF en PHP.

ACF, l’approche classique en PHP

Et la première chose que l’on peut voir, c’est que c’est facile : il suffit de déclarer un groupe de champs, de l’assigner à un bloc, et de déclarer un block.json.

Ensuite, le rendu du bloc est fait exclusivement en PHP, que ce soit en front ou en back. Pour cela, vous utilisez les fonctions classiques de ACF, comme the_field().

PHP
template.php

C’est donc plus simple pour un développeur PHP qui n’a jamais fait de JS.

Information

Pour utiliser les blocs, vous devez impérativement avoir une licence pro de ACF.

Par contre, le rendu n’est pas temps réel : contrairement aux blocs natifs, lorsque vous cliquez sur un bloc ACF, il se transforme en un groupe de champs classique :

Lors de la saisie, les champs ACF remplacent l'aperçu du bloc.
Dans cet exemple, les champs ACF remplacent l’aperçu du bloc

Dès que vous quittez le champ, l’aperçu se regénère quasiment immédiatement. Cela dit, ACF a annoncé l’arrivée du inline editing, qui vise à rapprocher l’UX de celle native.

Au final, on peut presque tout faire avec les blocs ACF. Il y a toutefois quelques exceptions : vous ne pourrez pas réaliser un bloc Sommaire auto-généré en temps réel car vous n’aurez pas accès.

Conseil

Avec ACF, on diminue un peu l’expérience moderne d’édition de contenus, mais on reste tout de même sur quelque chose de propre.

Avantages des blocs et champs d’options natifs

Dans les prochains cours je vous présenterais la création de blocs natifs : vous verrez à quel point c’est plus simple que ce que l’on imagine.

Grâce aux blocs natifs, les paramètres seront mieux intégrés dans l’interface de l’éditeur.

D’ailleurs, on a accès à de nombreux champs offerts par WordPress, dont on découvrira un bon nombre dans les prochains chapitres :

Différents champs de l'éditeur Gutenberg, que vous pourrez réutiliser dans vos blocs.
Ces champs sont utilisables à volonté dans vos blocs

Par exemple, le sélecteur de couleurs natif nous confère un bel avantage, car on va pouvoir le contraindre pour afficher uniquement les couleurs de la charte graphique !

Ce que le sélecteur de couleurs d’ACF ne permet pas nativement.

Observez les options de ce bloc (que l’on abordera plus tard) dans la colonne de droite :

Un bloc sur mesure avec ses différentes options dans la colonne latérale de droite.
Les champs natifs sont parfaitement intégrés à l’interface de Gutenberg

Ils sont beaucoup plus élégants, modernes et mieux intégrés que les champs « classiques » de ACF !

Quant au code JS des blocs natifs, ce n’est pas si terrible que ce que l’on peut imaginer :

JSX
edit.js

Alors oui, les syntaxes sont différentes, le templating aussi, mais c’est loin d’être illisible. Dans cet exemple, je gère à la fois l’affichage du bloc dans l’éditeur, ainsi que ses différentes options grâce à des composants natifs comme ToggleControl et RangeControl.

La différence avec ACF, c’est qu’au lieu de configurer un groupe de champs pour mes options, j’invoque directement mes composants d’options dans le code. Ce qui est une approche bien plus appréciée pour un développeur.

Car au final, c’est bien souvent long de configurer des champs dans ACF :

Interface de configuration d'un groupe de champs ACF.
Configurer des options de blocs dans les groupes de champs, c’est… long

Ne réinventons pas la roue avec le natif !

Dernier avantage majeur pour les blocs natifs, c’est que vous allez pouvoir activer pas mal d’options sans code grâce aux supports !

En effet, les « supports » permettent d’activer le choix des couleurs de texte, de fond, les espacements et la typographie du bloc (entre autres) d’une simple déclaration dans la propriété supports du fichier block.json :

JSON
block.json

Autant de fonctionnalités qu’on n’aura pas besoin de réinventer à chaque fois !

Bon par contre, il y a quand même un désavantage avec les blocs natifs : il va falloir écrire 2 fois le bloc.

  • Sa version interactive dans l’éditeur, avec ses champs d’édition de contenu et de personnalisation des paramètres, via edit.js ;
  • Et sa version HTML à enregistrer en base de données, via save.js.

On peut l’observer sur la capture de mon IDE :

L'éditeur de code Cursor montre 2 fenêtres avec le code d'un bloc pour l'éditeur à gauche, et pour la base de données à droite.
Les deux version du code d’un bloc

Du coup, ça donne parfois un peu plus de boulot, mais c’est le seul moyen pour obtenir une telle interactivité.

Alors, blocs ACF en PHP ou blocs natifs en JS ?

Maintenant que vous avez tous les éléments en tête, voici les questions que vous devez vous poser afin de peser les pour et les contre :

  • Est-ce que j’ai l’envie et le temps de me former sur JS et React ?
  • Est-ce que je veux une expérience utilisateur vraiment parfaite ?
  • Est-ce que je vais avoir besoin de faire des blocs avancés ?

Si les réponses sont oui, optez pour les blocs natifs !

Demandez-vous aussi :

  • Est-ce que je veux gagner du temps et en rentabilité ?
  • Est-ce que l’UX proposée par ACF me suffit ?
  • Est-ce que mes besoins en blocs restent classiques ?

Dans ce cas, vous pourriez opter pour les blocs ACF.

Mais avant de vous faire une idée définitive, je vous conseille cela dit d’avancer dans la formation. En plus, les premiers cours sont gratuits !

En tous cas, vous l’avez compris, j’ai une nette préférence pour les blocs natifs, maintenant que je les maîtrise parfaitement, mais pour vous, la question se pose encore !

Conseil

Si vous voulez aller vite et que vous ne voulez pas apprendre React, alors optez pour les blocs ACF en PHP ! Si vous visez une expérience utilisateur parfaite, et des possibilités étendues, alors choisissez le développement de blocs natif !


Aujourd’hui, je suis 100% conquis par Gutenberg, alors que j’étais sceptique lors de mon premier essai. Aujourd’hui je ne reviendrais pas en arrière. Je peux me concentrer sur l’écriture « riche » sans frustration, et cela change tout.

Je peux également proposer des blocs personnalisés faits sur-mesure à mes clients pour améliorer leur propre expérience de rédaction.

Des clients satisfaits, une meilleure productivité de vos équipes, bref, tout ce qui est bon pour votre business.

0

Questions, réponses et commentaires

Laisser un commentaire