Как я могу навсегда отключить сообщения Wordpress Gutenburg «Этот блок содержит недопустимое содержимое»? - PullRequest
1 голос
/ 22 июня 2019

Когда я создаю пользовательские блоки HTML в Wordpress Gutenburg, он продолжает преобразовывать мой код в надоедливые сообщения «этот блок содержит недопустимое содержимое». Wordpress считает его недействительным, потому что я использую эти блоки, чтобы открывать и закрывать div, но это не так, это совершенно правильный код. И Wordpress, отображающий эти сообщения везде, действительно мешает моей работе и плохо смотрится на стороне клиента.

Есть ли способ, например, фрагмент кода, который я могу добавить в мой functions.php, чтобы навсегда отключить эти сообщения?

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Я не уверен, правильно ли я вас понимаю, но если вы пытаетесь создать пользовательский блок, который выводит открывающий тег <div>, и другой блок, который выводит закрывающий тег </div>, т. Е. Для использования в качестве оболочки элемент для одного или многих других блоков - это не будет правильным кодом с точки зрения редактора блоков. Вам необходимо предоставить действительный элемент html (который в вашем случае представляет собой теги <div></div>) для вашего метода сохранения - чтобы он правильно отображался как действительный html во внешнем интерфейсе и снова мог быть проанализирован как компонент React / блок в редакторе ( это может быть особенно тем, что в вашем случае выдает ошибку, вам необходим элемент обертки для компонента React / блока Гутенберга - только один тег HTML не будет работать). Поэтому вам нужно иметь открывающий и закрывающий тег в одном блоке.

Все еще предполагая, что вы хотите достичь своего рода блока-обертки, вы можете:

a) Добавляйте динамически div-оболочки в блок при рендеринге блока во внешнем интерфейсе через PHP - тогда <div></div> не будет частью вашей сохраненной строки в базе данных (это будет работать только для отдельных блоков, которые вы хотите завернуть).

b) Создайте пользовательский блок-обертку, он может быть очень простым, просто выведите свой <div></div> и разрешите вставку других блоков в качестве внутренних блоков в редакторе (вы можете обернуть столько блоков, сколько захотите ... если это все еще остается управляемым в редакторе).

Пользовательские имена классов могут быть добавлены для обоих решений.

0 голосов
/ 22 июня 2019

Сообщение появляется, когда Гутенберг получает другие атрибуты блока из функции сохранения, чем это ожидается в функции редактирования.Это проблема, связанная с вашими атрибутами блоков.Проверьте атрибуты и проверьте, все ли они определены.

Другим обходным решением является создание динамического блока

Динамические блоки - это блоки, которые могут изменять свое содержимое.даже если пост не сохранен.Одним из примеров из самого WordPress является блок последних сообщений.Этот блок будет обновляться везде, где он используется, когда публикуется новое сообщение.

Динамический блок не будет проверять возможность преобразования из сохранения в редактирование.

Если вы опубликуете функции вашего блока save и edit, а также attributes, я могу продолжить расследование ошибки.

...