Блочные темы открывают перед пользователями обширное пространство творческих возможностей. Однако бывают ситуации, когда авторам тем необходимо заблокировать ключевые элементы дизайна и связанные с ними области содержимого. Специально с этой целью в релизе WordPress 5.9 будет внедрен новый API для блокировки блоков, появившийся ранее в Gutenberg 11.6.
Блокировка на уровне шаблонов доступна в Gutenberg уже несколько лет. С ее помощью разработчики могут блокировать шаблон в интерфейсе, чтобы запретить пользователям перемещать и изменять блоки. Новый API предлагает более детальный контроль на уровне отдельных блоков.
«Вместо применения блокировки ко всем внутренним блокам, вы можете выборочно применять ее к отдельным блокам с помощью атрибута lock», — рассказал Маркус Казмерчак. – «Блокировка на уровне блоков заменит собой наследуемое значение templateLock. Вы можете заблокировать перемещение или удаление блока».
Основной сценарий использования нового функционала – это блокировка блока с контентом записи в шаблоне single, чтобы пользователи не могли его удалить.
Еще один сценарий использования – блокировка нескольких блоков, чтобы они всегда были в одной и той же позиции — к примеру, для блока Checkout в WooCommerce. В этом случае важно, чтобы раздел с контактами был перед разделом с адресом, либо адрес был перед разделом с вариантами доставки.
Пост Маркуса показывает, как разработчики могут заблокировать определенный блок в паттерне; также в нем объясняется, почему блокировка на уровне блока не наследуется.
«Если блок заблокирован от удаления, его дочерние блоки все равно могут быть удалены», — указал Маркус. – «Если вы хотите применить блокировку и к дочерним блокам, то в таком случае добавьте templateLock к внутреннему блоку или добавьте атрибут templateLock ко всем вложенным блокам».
Источник: wptavern.com