当我在Wordpress Gutenburg中创建自定义HTML块时,它不断将我的代码转换为令人讨厌的“此块包含无效内容”消息。 Wordpress认为这是无效的,因为我正在使用这些块来打开和关闭div,但事实并非如此,这完全是合法的代码。而且,WordPress在所有地方显示这些消息确实妨碍了我的工作,并且在客户端看起来很糟糕。
有没有办法(例如,可以添加到我的functions.php中的一段代码)永久禁用这些消息?
答案 0 :(得分:0)
当gutenberg从save函数中获得的块属性与在edit函数中所期望的不同时,将出现该消息。这是与您阻止属性有关的问题。检查属性并检查是否已全部定义。
另一种解决方法是创建一个dynamic block
动态块是可以更改其内容的块,即使 帖子未保存。 WordPress本身的一个例子是最新的 帖子块。当新的 帖子已发布。
动态块将不会检查从保存到编辑的可转换性。
如果您发布区块的save
和edit
函数以及attributes
,我将进一步调查该错误。
答案 1 :(得分:0)
我不确定我是否理解正确,但是如果您要制作一个自定义块,输出一个开始<div>
标签,另一个块输出一个结束</div>
标签,即用作一个或多个其他块的包装元素–就块编辑器而言,这不是合法的代码。您需要为您的save方法提供一个有效的html元素(在您的情况下,这两个标签均为<div></div>
)–要在前端正确地显示为有效html,并再次作为React组件/块解析为编辑器(这可能是为什么它会在您的情况下引发错误的原因,您需要为React组件/ Gutenberg块添加一个包装元素–仅单个html标签将不起作用)。因此,您需要将开始和结束标记放在一个块中。
仍然假设要实现某种包装块,您可以:
a)通过PHP在前端上呈现块时,将包装器div动态添加到块中–这样<div></div>
将不会成为数据库中已保存字符串的一部分(这仅适用于您使用的单个块)要包装)。
b)制作自定义包装程序块非常简单,只需输出<div></div>
并允许将其他块作为内部块插入到编辑器中(您可以包装任意数量的块...如果它仍然可以在编辑器中管理)。
可以为这两种解决方案添加自定义类名。