Le verrouillage des blocs dans WordPress 6.0

Grégory
Grégory

Passionné d'informatique depuis mon enfance et d'internet depuis la fin des années 90, j’ai pu acquérir en parallèle à ma formation de Technicien Informatique des compétences de Web Designer et de graphiste.

Vous êtes à la recherche d’un prestataire pour la création de votre site internet ?
Wordpress 6.0 et le verrouillage des blocs

WordPress 6.0 a plusieurs nouvelles fonctionnalités qui devraient rendre les constructeurs de thèmes heureux. L’un des outils les plus avancés est le verrouillage des blocs, qui peut être utilisé pour empêcher le déplacement ou la suppression de blocs spécifiques.

La version 6.0 inclut un nouveau paramètre « Verrouiller » dans la liste déroulante des options de la barre d’outils. Une fenêtre modale apparaît et permet à l’utilisateur de désactiver le déplacement du bloc ou sa suppression.

À première vue, cela peut ne pas sembler être une fonctionnalité particulièrement robuste. Cependant, la véritable puissance du verrouillage de blocs se situe du côté développement. Les créateurs de thèmes peuvent utiliser la nouvelle clé de verrouillage pour empêcher les utilisateurs finaux de déplacer ou de supprimer des blocs spécifiques dans leurs modèles. Cela peut être particulièrement pratique pour les mises en page plus complexes, telles qu’un en-tête et une zone de navigation. Les auteurs de thèmes peuvent désormais exercer davantage de contrôle sur l’expérience utilisateur dans des endroits où la conception pourrait facilement être brisée.

Notez que le verrouillage ne se répercute pas sur les blocs imbriqués. Par conséquent, si un bloc de groupe externe est verrouillé, les utilisateurs peuvent toujours ajouter, supprimer ou déplacer tout ce qu’il contient. Les créateurs de thèmes doivent également ajouter un verrou à tous les éléments imbriqués qu’ils souhaitent conserver en place. Il y a un ticket ouvert et quelques premiers travaux de conception autour du verrouillage des blocs imbriqués, mais il n’est pas présent dans WordPress 6.0.

Bien que cette nouvelle fonctionnalité offre plus de contrôle aux auteurs de thèmes, elle n’accorde pas un pouvoir absolu. Les utilisateurs peuvent toujours déverrouiller des blocs en cliquant sur l’icône de verrouillage dans la barre d’outils. Cependant, comme le dit le dicton dans les cercles de développement WordPress, « Il y a toujours un hook pour cela ».

George Mamadashvili a montré l’utilisation du hook  block_editor_settings_all pour personnaliser l’accès. Il a fourni quelques exemples d’activation ou de désactivation de l’interface utilisateur en fonction des droits, de l’e-mail de l’utilisateur et du contexte, tel que le type de publication. Il n’y a pas de limites à la façon dont les développeurs peuvent utiliser ce hook.

Un développeur pourrait désactiver la capacité de tout utilisateur à déplacer ou supprimer des blocs. Dans ce cas, cela devrait aider les agences et les indépendants à créer des expériences étroitement contrôlées pour leurs clients, en particulier lors de la transmission de l’accès à l’éditeur du site.

Pour les développeurs qui créent des thèmes sur WordPress.org, l’équipe des thèmes interdit actuellement l’utilisation de ce hook. En avril, l’équipe a annoncé que les thèmes pouvaient verrouiller les blocs mais pas désactiver la capacité de l’utilisateur à les déverrouiller.

Le verrouillage de blocs n’est pas limité aux modèles basés sur des blocs. Il est également possible de verrouiller des éléments dans des publications ou des pages. Avec une configuration d’autorisations personnalisées, les développeurs pourraient l’étendre pour donner libre cours aux administrateurs et aux éditeurs tout en empêchant les auteurs et les contributeurs de contourner les verrous.

Par défaut, tous les blocs prennent en charge le verrouillage. Pour les développeurs de plugins qui souhaitent désactiver cette fonctionnalité, ils peuvent définir la clé supports.lock sur false dans leur fichier block.json.

Pour plus d’informations, consultez l’article d’Anne McCarthy sur la création d’expériences organisées avec des API de verrouillage et theme.json.