如何永久禁用Wordpress Gutenburg的“此阻止包含无效内容”消息?

时间:2019-06-22 04:58:12

标签: wordpress wordpress-gutenberg

当我在Wordpress Gutenburg中创建自定义HTML块时,它不断将我的代码转换为令人讨厌的“此块包含无效内容”消息。 Wordpress认为这是无效的,因为我正在使用这些块来打开和关闭div,但事实并非如此,这完全是合法的代码。而且,WordPress在所有地方显示这些消息确实妨碍了我的工作,并且在客户端看起来很糟糕。

有没有办法(例如,可以添加到我的functions.php中的一段代码)永久禁用这些消息?

2 个答案:

答案 0 :(得分:0)

当gutenberg从save函数中获得的块属性与在edit函数中所期望的不同时,将出现该消息。这是与您阻止属性有关的问题。检查属性并检查是否已全部定义。

另一种解决方法是创建一个dynamic block

  

动态块是可以更改其内容的块,即使   帖子未保存。 WordPress本身的一个例子是最新的   帖子块。当新的   帖子已发布。

动态块将不会检查从保存到编辑的可转换性。

如果您发布区块的saveedit函数以及attributes,我将进一步调查该错误。

答案 1 :(得分:0)

我不确定我是否理解正确,但是如果您要制作一个自定义块,输出一个开始<div>标签,另一个块输出一个结束</div>标签,即用作一个或多个其他块的包装元素–就块编辑器而言,这不是合法的代码。您需要为您的save方法提供一个有效的html元素(在您的情况下,这两个标签均为<div></div>)–要在前端正确地显示为有效html,并再次作为React组件/块解析为编辑器(这可能是为什么它会在您的情况下引发错误的原因,您需要为React组件/ Gutenberg块添加一个包装元素–仅单个html标签将不起作用)。因此,您需要将开始和结束标记放在一个块中。

仍然假设要实现某种包装块,您可以:

a)通过PHP在前端上呈现块时,将包装器div动态添加到块中–这样<div></div>将不会成为数据库中已保存字符串的一部分(这仅适用于您使用的单个块)要包装)。

b)制作自定义包装程序块非常简单,只需输出<div></div>并允许将其他块作为内部块插入到编辑器中(您可以包装任意数量的块...如果它仍然可以在编辑器中管理)。

可以为这两种解决方案添加自定义类名。