Playbook

28 stratégies pour cadrer l'experience éditoriale dans Gutenberg

T’as déjà galéré avec des clients qui cassent tout dans Gutenberg ? Pas de panique, voici une liste d’astuces pour cadrer leur autonomie et leur donner un outil propre et facile à utiliser.

En gros, c’est un concentré de ce que j'ai déjà mis en place car je voulais garder un site dans un état correct dans le temps !

Désactivation et restriction des blocs

  1. Bloque certains blocs : avec allowed_block_types_all, tu choisis ce qu’ils peuvent utiliser ou pas.
  2. Coupe le répertoire de blocs : si tu veux qu’ils n’installent rien d’inattendu, vire le répertoire.
  3. Supprime les variations inutiles : utilise unregister_block_style pour dégager les variations moches ou inutiles.
  4. Templates propres : définis des blocs par page ou type de contenu, pas plus, pas moins.

Modifications via theme.json

  1. Styles globaux : fige les couleurs, typos, et espacements une bonne fois pour toutes.
  2. Propose des styles de blocs prédéfinis : guide-les avec des choix logiques et prévus.
  3. Ajoute des styles prédéfinis pour guider un peu les utilisateurs sans qu’ils aient à jouer au designer.
  4. Palette limitée : juste les couleurs de la charte graphique, rien de plus.
  5. Unités de taille contrôlées : pas de pixels random, que du cadré.

Filtres côté serveur (Server-Side Filters)

  1. Détourne le theme.json dynamiquement : avec le hook wp_theme_json_data, adapte tout selon le contexte (utilisateur, contenu, etc.).
  2. Verrouille ce qui doit l’être : protège les réglages critiques côté serveur.

Filtres côté client (Client-Side Filters)

  1. Bidouille en JS : modifie l’interface avec l’API de Gutenberg (wp.data.dispatch).
  2. Cache ce qui sert à rien : un coup de CSS ou JS pour masquer les trucs superflus. Pense long terme et effet de bords, ça t'évitera des surprises.

Utilisation de modèles (Templates)

  1. Impose des templates : utilise des block templates pour préparer des pages cadrées.
  2. Verrouillage : empêche les clients de bouger ce qui doit rester fixe (état lock: all).
  3. Placeholders : mets des exemples ou des instructions directes dans les blocs pour les guider.

Restrictions basées sur les rôles utilisateurs

  1. Filtre les blocs par utilisateur : Avec allowed_block_types, tu gères ce que chaque rôle peut utiliser.
  2. Allège les panneaux : supprime les options avancées pour certains profils.

Curations spécifiques à l’expérience utilisateur

  1. Ajoute des styles custom : donne-leur des variations utiles et adaptées. Un bon vieux register_block_styleet le tour est joué.
  2. Nettoie les panneaux : supprime tous les onglets qui ne servent à rien dans le contexte client (catégories, auteurs, etc.).
  3. Vire les options inutiles : moins ils en voient, mieux c’est. Par exemple, désactive les couleurs custom dans theme.json

Désactivation de fonctionnalités globales

  1. Bloque les types de contenu inutiles : désactive ce qui ne sert pas dans leur projet.
  2. Dégage les Patterns par défaut : entre nous, qui les a déjà utilisé ?

Utilisation de plugins tiers

  1. ACF : Si t’as besoin de structurer des contenus custom sans que le client touche aux templates, je te conseille de te tourner vers l'éditeur de blocs natif quoi qu'il arrive. Si maintenant t'es moins à l'aise avec React.js et que t'es encore afficionados des get_field() alors OK, installe ACF. Par exemple, tu peux créer un champ "Témoignage" avec une image, un texte, et un lien, prêts à être stylés comme il faut dans le front. En plus, ça simplifie grave la vie des clients pour remplir leurs contenus.
  2. Block Visibility : super pratique si tu veux afficher des blocs uniquement dans certains cas. Par exemple, tu peux faire apparaître un bloc seulement pour les utilisateurs connectés, ou activer des sections dynamiques en fonction des saisons ou d’événements spécifiques. C’est nickel pour des audiences différenciées.

Désolé j'utilise pas des masses de plugins, mais si t'en a en tête des pratiques qui vraiment t'ont sauvé un temps précieux, n'hésites pas à me les partager sur Discord.

Personnalisation avancée de l’expérience

  1. Blocs custom : si le client a besoin de trucs spécifiques qu’aucun bloc natif ne couvre, créer un bloc custom peut devenir la meilleure option. Par exemple, un bloc qui affiche une grille de témoignages avec un slider ou un formulaire d’inscription connecté à une API externe. Utilise l’API Block Editor pour les construire proprement.
  2. Contenus dynamiques : la Query Loop, c’est une tuerie pour automatiser les affichages. Genre, tu peux afficher une liste d’articles d’une catégorie spécifique, une grille de produits WooCommerce, ou des événements triés par date. Pas besoin de PHP custom, tout est dans l’éditeur.
  3. Guides interactifs : intègre des aides directement dans Gutenberg. Par exemple, ajoute des placeholders dans les blocs pour donner des instructions ("Entrez ici un titre accrocheur"). Tu peux aussi créer un "Assistant" en JavaScript qui guide les utilisateurs à chaque étape de la création de contenu. Parfait pour les clients moins à l'aise avec les outils informatiques.

Bon clairement, avec tout ça, tu peux leur faire une interface clean et sûre. Moins de questions, moins de bugs, tout le monde est content. Si t’as besoin d’exemples ou de snippets, tu sais où me trouver !