
Blocs Gutenberg : Le guide du développeur pour des layouts uniques
Découvrez comment créer vos propres blocs Gutenberg. Ce guide technique vous montre les étapes clés pour développer des composants sur-mesure et offrir des expériences uniques.
En tant qu'experts en développement web et WordPress chez Maevo, nous voyons l'éditeur de blocs Gutenberg bien plus qu'un simple outil de mise en page. C'est une véritable révolution, un framework basé sur React qui offre une puissance et une flexibilité sans précédent pour la création de sites WordPress sur-mesure. Si vous êtes un développeur cherchant à dépasser les limites des thèmes et des page builders traditionnels, vous êtes au bon endroit.
Fini le temps des shortcodes obscurs et des champs ACF (Advanced Custom Fields) rigides. L'avenir de la contribution de contenu sur WordPress est modulaire, intuitif et entièrement personnalisable. Dans cet article, nous allons plonger au cœur du développement de blocs Gutenberg personnalisés. Nous vous guiderons pas à pas pour créer votre premier bloc, en démystifiant le processus et en vous donnant les clés pour libérer tout le potentiel de votre site WordPress.
Pourquoi créer ses propres blocs Gutenberg ?
Avant de plonger dans le code, il est essentiel de comprendre pourquoi investir du temps dans le développement de blocs personnalisés est une stratégie gagnante. Il ne s'agit pas seulement d'une prouesse technique, mais d'une approche qui apporte une valeur ajoutée considérable à la fois pour les développeurs, les clients et les utilisateurs finaux.
H3: Une expérience éditoriale sur-mesure pour vos clients
L'avantage le plus immédiat est la simplification radicale de l'expérience de contribution. Au lieu de jongler avec des dizaines d'options dans un constructeur de page complexe ou de se souvenir de la syntaxe d'un shortcode, votre client interagit avec des composants clairs et dédiés. Un bloc "Témoignage Client" aura ses propres champs : citation, auteur, entreprise. Un bloc "Membre de l'équipe" aura des champs pour la photo, le nom et le poste. C'est intuitif, visuel et cela réduit drastiquement les risques d'erreur, garantissant une cohérence parfaite du contenu.
H3: Des performances optimisées
Les constructeurs de pages populaires comme Elementor ou Divi, bien que puissants, ont un coût : ils ajoutent une quantité significative de code (HTML, CSS, JS) sur chaque page, qu'un module soit utilisé ou non. Cela peut ralentir le temps de chargement et impacter vos Core Web Vitals, un facteur SEO crucial. Les blocs Gutenberg personnalisés, eux, sont optimisés. Vous ne chargez que le code strictement nécessaire au rendu des blocs présents sur la page. Le résultat est un code source plus propre, plus léger et un site web nettement plus rapide.
H3: Une cohérence de marque parfaite (Brand Consistency)
Avec les blocs personnalisés, vous intégrez votre charte graphique (Design System) directement au cœur de l'éditeur. Les couleurs, les typographies, les espacements et les styles de boutons sont prédéfinis dans le bloc. L'éditeur de contenu ne peut pas dévier de la ligne graphique établie. C'est la garantie que chaque nouvelle page ou article respectera scrupuleusement l'identité visuelle de la marque, sans intervention manuelle fastidieuse.
H3: Une maintenabilité et une évolutivité accrues
Les blocs sont des composants modulaires et réutilisables. Si vous devez mettre à jour le design d'un bloc "Appel à l'action", vous le modifiez à un seul endroit, et la mise à jour se répercute sur toutes les instances du bloc à travers le site. C'est infiniment plus simple et plus sûr que de devoir modifier des centaines de shortcodes ou de templates de page. Cette approche modulaire rend votre site plus robuste, plus facile à maintenir et prêt à évoluer.
Les prérequis techniques pour se lancer
Le développement de blocs Gutenberg modernes s'appuie sur un écosystème JavaScript. Si vous venez du monde PHP de WordPress, certains outils peuvent être nouveaux, mais ils sont devenus des standards du développement web.
H3: L'environnement de développement
Pour commencer, vous aurez besoin d'un environnement de développement local solide. Voici les indispensables :
- Un site WordPress local : Des outils comme Local (par WP Engine) ou MAMP/XAMPP sont parfaits pour cela.
- Node.js et npm : Node.js est un environnement d'exécution JavaScript, et npm est son gestionnaire de paquets. Ils sont essentiels pour installer les dépendances et exécuter les scripts de build. Téléchargez-les depuis le site officiel de Node.js.
- Un éditeur de code : Visual Studio Code est fortement recommandé pour son excellent support de JavaScript, React et ses nombreuses extensions.
H3: Les connaissances fondamentales
Si le développement de blocs se fait majoritairement en JavaScript, une connaissance basique de WordPress reste nécessaire.
- PHP : Vous en aurez besoin pour enregistrer votre bloc côté serveur, surtout si vous créez des blocs dynamiques.
- JavaScript (ESNext) : Une bonne maîtrise de JavaScript moderne (variables
let/const, fonctions fléchées, déstructuration) est indispensable. - React.js : C'est le cœur du réacteur. Gutenberg est construit avec React. Vous devez comprendre les concepts de base : composants, props, state et JSX. Vous n'avez pas besoin d'être un expert React, mais les fondamentaux sont non négociables.
H3: L'outil officiel : @wordpress/create-block
Heureusement, l'équipe de WordPress a créé un outil formidable pour simplifier la mise en place d'un nouveau bloc. @wordpress/create-block est un script qui génère toute la structure de fichiers, la configuration de build (webpack) et les dépendances nécessaires en une seule commande. C'est la méthode recommandée pour démarrer tout projet de bloc moderne.
Guide pas à pas : Créer votre premier bloc "Témoignage"
Passons à la pratique ! Nous allons créer un bloc simple mais concret : un bloc "Témoignage" qui affichera une citation, le nom de l'auteur et son entreprise.
H3: Étape 1 : Initialisation du projet avec @wordpress/create-block
Ouvrez votre terminal, naviguez jusqu'au dossier wp-content/plugins de votre site WordPress local, et exécutez la commande suivante :
npx @wordpress/create-block maevo-testimonial
Cette commande va créer un nouveau dossier maevo-testimonial contenant un plugin WordPress fonctionnel avec un bloc de base. Activez ce plugin depuis votre administration WordPress.
La structure générée contiendra un dossier src où nous allons travailler. Les fichiers clés sont :
block.json: Le fichier de métadonnées du bloc.index.js: Le point d'entrée pour l'enregistrement du bloc.edit.js: Le composant React pour l'interface d'édition (backend).save.js: Le composant React pour le rendu final (frontend).
H3: Étape 2 : Configurer les attributs dans block.json
Le fichier block.json est central. Il déclare votre bloc à WordPress et définit ses attributs (les données modifiables). Modifions-le pour notre bloc témoignage :
{
"$schema": "https://schemas.wp.org/trunk/block.json",
"apiVersion": 2,
"name": "maevo/testimonial",
"version": "0.1.0",
"title": "Témoignage Maevo",
"category": "text",
"icon": "format-quote",
"description": "Affiche un témoignage client avec une citation et un auteur.",
"attributes": {
"quote": {
"type": "string",
"source": "html",
"selector": "blockquote"
},
"author": {
"type": "string",
"source": "html",
"selector": ".author"
}
},
"supports": {
"html": false
},
"textdomain": "maevo-testimonial",
"editorScript": "file:./build/index.js",
"editorStyle": "file:./build/index.css",
"style": "file:./build/style-index.css"
}
Nous avons défini ici deux attributs : quote et author. Le selector indique à Gutenberg où trouver cette information dans le HTML sauvegardé.
H3: Étape 3 : Construire l'interface d'édition (src/edit.js)
Ce fichier définit ce que l'éditeur de contenu voit et manipule dans le backend. Nous utiliserons des composants React fournis par WordPress pour créer nos champs.
import { useBlockProps, RichText } from '@wordpress/block-editor';
export default function Edit({ attributes, setAttributes }) {
const blockProps = useBlockProps();
const { quote, author } = attributes;
const onChangeQuote = (newQuote) => {
setAttributes({ quote: newQuote });
};
const onChangeAuthor = (newAuthor) => {
setAttributes({ author: newAuthor });
};
return (
<div {...blockProps}>
<RichText
tagName="blockquote"
placeholder="Entrez la citation ici..."
value={quote}
onChange={onChangeQuote}
/>
<RichText
tagName="p"
className="author"
placeholder="Nom de l'auteur"
value={author}
onChange={onChangeAuthor}
/>
</div>
);
}
Ici, nous utilisons le composant <RichText> qui offre une expérience d'édition de texte enrichi. Chaque fois que son contenu change (onChange), nous mettons à jour l'attribut correspondant via setAttributes.
H3: Étape 4 : Définir le rendu en front-end (src/save.js)
Ce fichier détermine le HTML final qui sera enregistré dans la base de données et affiché sur le site public.
import { useBlockProps, RichText } from '@wordpress/block-editor';
export default function save({ attributes }) {
const blockProps = useBlockProps.save();
const { quote, author } = attributes;
return (
<div {...blockProps}>
<RichText.Content tagName="blockquote" value={quote} />
<RichText.Content tagName="p" className="author" value={author} />
</div>
);
}
La structure est très similaire à celle du fichier edit.js, mais nous utilisons RichText.Content pour afficher la version finale et non modifiable du contenu. Il est crucial que la structure HTML ici corresponde exactement aux selector définis dans block.json pour éviter les erreurs de validation de bloc.
Une fois ces fichiers modifiés, votre terminal (qui doit toujours exécuter npm start dans le dossier du plugin) va automatiquement recompiler le code. Rafraîchissez votre éditeur de page, et vous pourrez ajouter votre tout nouveau bloc "Témoignage Maevo" !
Conclusion : Une nouvelle ère pour le développement WordPress
La création de blocs Gutenberg personnalisés représente un changement de paradigme pour les développeurs WordPress. C'est l'opportunité de passer d'un rôle d'intégrateur de thèmes et de plugins à celui d'architecte d'expériences de contenu uniques, performantes et parfaitement alignées avec les besoins des clients.
Ce guide n'est qu'un point de départ. L'API des blocs est riche et permet de créer des composants bien plus complexes, avec des réglages dans la barre latérale (InspectorControls), des prévisualisations, ou même des blocs dynamiques dont le contenu est généré en PHP. En maîtrisant cette compétence, vous vous positionnez à l'avant-garde du développement WordPress moderne.
Chez Maevo, nous intégrons cette philosophie dans tous nos projets. Nous sommes convaincus que le sur-mesure est la clé d'une plateforme digitale réussie. Si vous souhaitez transformer votre site WordPress avec une expérience éditoriale puissante et personnalisée, contactez nos experts. Nous serons ravis de discuter de la manière dont les blocs Gutenberg peuvent élever votre projet au niveau supérieur.