Гутенберг InnerBlocks.Content в редакторе - PullRequest
1 голос
/ 24 мая 2019

У меня есть блок, который использует <InnerBlocks />. Я знаю, что могу в бэкэнде импортировать компонент InnerBlocks, и он будет отображать редактор блоков поверх моего блока. В функции save моего блока я могу использовать <InnerBlocks.Content />, и он будет отображать только содержимое блока.

Моя цель состоит в том, чтобы иметь <InnerBlocks.Content />, т.е. не редактируемую версию внутренних блоков, также в бэкэнде. Это состояние моего блока, где он будет просматривать отредактированные настройки. Я могу использовать

<InnerBlocks templateLock="all" /> 

Чтобы избавиться от всех точек вставки в редакторе, делая невозможным добавление новых блоков. Однако существующие внутренние блоки будут по-прежнему доступны для редактирования. Есть ли атрибут блока или настройка редактора, чтобы полностью отключить редактирование определенных блоков? Или я могу достичь своей цели другим способом?

По-другому спрашивают: как я могу получить и отобразить содержимое любого блока (с содержимым внутренних блоков) в редакторе?

1 Ответ

1 голос
/ 24 мая 2019

Текущее поведение блоков в вашем сценарии - это ожидаемое поведение. То, что вы можете запретить пользователю вносить изменения в блок, означает добавление / удаление блоков, но сам блок и его подблоки останутся настраиваемыми, что означает изменение цвета, размера шрифта и т. Д.

Вы можете использовать Блочные фильтры , чтобы изменить значения по умолчанию для блоков, концепция этого та же, что и в хуках WordPress. Хотя вы можете изменить поведение основных блоков, используя это, но это не рекомендуется от меня, так как это может создать сложности или повлиять на другие блоки, которые зависят от них (то есть блоки плагинов, такие как WooCommerce). Я предпочитаю разрабатывать пользовательские блоки в вашем сценарии, в которых я могу показать или скрыть внутренние блоки, используя любое значение атрибута.

Если вы заинтересованы в содействии Гутенбергу, то я думаю, что это будет хорошим дополнением к текущим блокам.

...