Вопрос или проблема
Начиная с WP 5.8, мы можем определять различные настройки в theme.json
, что очень ценно и действительно полезно. Но есть некоторые опции, которые я не могу найти, например, как убрать панель макета из блока core/group
?
В theme.json я попробовал (не уверен насчет ключа layout
):
{
// ...
"settings": {
// ...
"blocks": {
"core/group": {
"layout": false // или [] или {} <-- без эффекта
}
}
}
}
или
{
// ...
"settings": {
// ...
"blocks": {
"core/group": {
"layout": {
"customLayout": false // <-- без эффекта
}
}
}
}
}
Следующие ответы здесь были довольно близки:
- Как удалить конкретные панели в редакторе (Gutenberg) при редактировании блока (через правую панель)?
- Как удалить ненужные панели внутри InspectorControls из основных блоков в Gutenberg
- Удалить настройку радиуса границы из блока кнопки Gutenberg?
Так что мой вопрос
Где я могу найти полный список всех возможных настроек для основных блоков в theme.json
?
К сожалению, официальная тема twentytwentyone не содержит такого файла.
Теперь это гипотетически возможно в WordPress 6.4:
Чтобы отключить элементы управления для всех блоков,
"allowEditing": false
должно быть добавлено вsettings.layout
, как показано ниже:"settings": { "layout": { "allowEditing": false } }
Чтобы отключить элементы управления для отдельных блоков, добавьте
"allowEditing": false
вsettings.blocks.[block name].layout
, следующим образом:"settings": { "blocks": { "core/cover": { "layout": { "allowEditing": false } } } }
Однако отключение макета делает вариации блока ряд/стек бесполезными, так как исчезают все элементы управления выравниванием вместе с параметрами размера содержимого/ширины.
Ответ или решение
Вопрос о том, как удалить вариант из редактора Gutenberg для конкретного блока с использованием файла theme.json, является актуальным для разработчиков, работающих с WordPress, начиная с версии 5.8. Особенностью WordPress этой версии является возможность управления настройками блоков через файл theme.json, что упрощает процесс кастомизации и настройки пользовательского интерфейса. Однако, некоторые аспекты остаются неочевидными, например, как удалить панель макета из блока core/group. Давайте разберёмся, как это можно реализовать, учитывая новую информацию о возможностях WordPress 6.4.
Проблема и её решение
Существующий подход, описанный в рамках вопроса, предполагает попытки отключения панели макета через ключи "layout": false
, и т.д. Однако они не дают нужного результата. Ключевым изменением является появление в WordPress 6.4 возможности использования свойства "allowEditing": false
для отключения контролей макета:
-
Отключение макет-контролей для всех блоков:
Для полного отключения редактирования макета для всех блоков необходимо внести изменения в theme.json следующим образом:
{ "settings": { "layout": { "allowEditing": false } } }
Это действие приведёт к тому, что все блоки потеряют доступ к контролям по настройке макета.
-
Отключение макет-контролей для отдельного блока:
Если вам необходимо отключить данные настройки только для определённого блока, например, core/group, добавьте соответствующую запись:
{ "settings": { "blocks": { "core/group": { "layout": { "allowEditing": false } } } } }
Эта запись позволяет заблокировать настройки для конкретного блока без влияния на другие.
Расширенные настройки и противопоказания
Следует помнить, что отключение всех контролей макета, напротив, может сделать некоторые блоки, такие как вариации строк и стека, бесполезными, так как все элементы выравнивания исчезнут наряду с управлением размером контента.
Поиск информации о настройках core-блоков
Для точного понимания всех возможных настроек, которые можно использовать в theme.json, было бы резонно обратиться к официальной документации WordPress, так как она может содержать полный перечень поддерживаемых настроек. Другая возможность — изучение изменений в ядре WordPress, следуя за разработкой через блоги или каналы разработчиков, что позволит всегда быть в курсе новых возможностей.
Таким образом, использование новых возможностей WordPress 6.4 для управления контролями макета в блоках через theme.json открывает новые горизонты для настройки интерфейса, снижая зависимость от сложных программных решений и плагинов.