Block Context

Définition : Block Context est le mécanisme par lequel un bloc parent fournit des valeurs à certains blocs descendants. Il évite de recopier des données de contexte dans chaque élément enfant.

Comprendre et utiliser

À quoi cela sert ?

Ce partage rend possibles des blocs réutilisables, par exemple un bloc Titre qui s’adapte à la publication représentée dans une liste de contenus.

Comment cela fonctionne ?

Le parent expose providesContext depuis ses attributs et l’enfant déclare usesContext pour recevoir les clés voulues. Ces valeurs sont accessibles dans edit ou le rendu PHP, pas dans save.

Dans quel contexte l’utiliser ?

Utile dans les compositions où plusieurs blocs enfants doivent connaître une même identité ou un même état éditorial dépendant du parent.

Cas concret : ATOOLPHA

Un bloc parent ATOOLPHA expose l’identifiant d’une ressource ; un bloc enfant affiche son étiquette à partir de ce contexte sans saisir deux fois l’identifiant.

Exemple de code commenté

Extrait documentaire : le contexte WordPress du plugin/éditeur et les dépendances décrites sont nécessaires ; ne pas coller dans le contenu d’une page.

{"providesContext":{"atoolpha/resourceId":"resourceId"},"attributes":{"resourceId":{"type":"number"}}}

Décryptage de l’exemple

La clé de contexte atoolpha/resourceId reçoit la valeur de l’attribut resourceId du parent. Un bloc enfant doit explicitement annoncer usesContext pour la consommer.

Résultat attendu

Les enfants compatibles peuvent accéder à l’identifiant transmis dans leur cycle d’édition ou de rendu ; aucune duplication d’attribut individuel n’est requise.

Atelier pratique de vérification

Créer un parent qui fournit une clé de contexte et un enfant qui la consomme. Vérifier la valeur reçue dans edit et dans un callback de rendu. Déplacer l’enfant sous un autre parent, puis observer le nouveau contexte. Tester aussi un enfant qui n’a pas déclaré usesContext.

Précautions et limites

Le contexte ne remplace pas le contrôle d’autorisation. Un identifiant de contenu transmis à un bloc ne doit pas donner accès automatiquement à des données privées.

Contrôle avant intégration dans un plugin

Documenter les noms des clés de contexte et les descendants autorisés. Tester le déplacement d’un enfant et les valeurs nulles, puis vérifier que le contexte n’est jamais utilisé seul comme preuve d’autorisation.

À ne pas confondre

Block Context transmet des valeurs dans la hiérarchie des blocs ; @wordpress/data représente un magasin d’état partagé entre composants de l’éditeur.

Diagnostic et dépannage avancés

Si un enfant ne reçoit aucune valeur, vérifier la déclaration usesContext, l’existence de l’attribut source sur le parent et leur relation réelle dans la hiérarchie.

Notions associées

  • InnerBlocks
  • @wordpress/data
  • render_callback

Références officielles

Bouton retour en haut de la page