古登堡区块编辑是否在导入期间更改了帖子内容中的html?

时间:2019-11-08 作者:Ted

古腾堡之前和古腾堡之后,哪种HTML更好?

我将帖子内容从一个旧的大型WP站点导入到一个新安装的数据库中。近1200篇帖子及其元数据和相关媒体。xml文件为15mb。我使用标准wordpress导入/导出以及媒体导出[插件][1]来显示特色图像。源站点使用tinymce advanced 要维护classic编辑器,请查找客户端。

大部分内容都保留了下来,但在新的设置中,导入内容的html发生了更改。

这是前端的外观。左边是原点,右边是导入。

left=exported front-end, right=imported front-end

下面是html是如何改变的。左边是原点。右侧在导入之后。

enter image description here

整个内容块是在过程中的什么时候包装的<p>’s、 使用<br>’s和&nbsp’添加了s,但缺少原始换行符?

显然,古腾堡的某些东西正在改变帖子内容的基本html。

https://wordpress.org/support/topic/gutenberg-does-not-play-nicely-with-code-editor/

https://github.com/WordPress/gutenberg/issues/11211

https://core.trac.wordpress.org/ticket/45636?cversion=0&cnum_hist=1

Themeisle提供的css解决了前端段落间距问题

    br
{   content: "A" !important;
    display: block !important;
    margin-bottom: 1em !important;
}
即便如此,我想知道如何在html方面取得最好的进展。这是古腾堡的某种错误,还是我应该继续进行CSS修复?这里正确的html是什么?如果这是错误的,是否有某种正则表达式魔法可以修复它?

update

为了响应@tomjnowell,我在没有活动插件的情况下运行了导出,并将其导入到没有活动插件的新安装中。以下是结果:

enter image description here

xml已导入空白站点。然后,帖子内容以“编辑为html”模式出现在古腾堡的“经典”块中,删除了旁格,并添加了br和nbsp之间的空格。BR不显示在数据库中,但nbsp显示在数据库中。

这里是另一个从左到右显示的比较,XML、源数据库和目标数据库。此外,我注意到数据库之间存在以下差异。不知道这是否重要。

Origin db post\\u内容的as类型为:MyISAM,排序规则设置为:latin1\\u swedish\\u ci

目标db post\\u内容的as类型为:InnoDB,排序规则设置为:utf8mb4\\u unicode\\u 520\\u ci

enter image description here

1 个回复
SO网友:Tom J Nowell

Gutenberg is an editor, it\'s not an active process that runs in the background. Unless you opened the post in the block editor there is no way for it to modify the HTML

这样想,PDF就是PDF,它是内容和数据。如果我用一个应用程序创建它,然后将它复制到具有不同PDF阅读器的机器上,PDF仍然是一样的。要修改它,我必须在编辑器中打开PDF并重新保存。

古腾堡也是如此。除非您在gutenberg中打开帖子并按“保存/发布”,否则gutenberg没有修改的机会。

试着想象一下古腾堡要真正做到这一点需要做些什么。它需要更新数据库中的每一篇文章,跟踪它已经修改和没有修改过的内容,而且它不能在一个请求中完成这项工作,它必须不断地轮询自己,直到作业完成,从而造成重大的服务器负载。

So gutenberg is not the cause of your issue. 不可能,除非你打开所有1200篇帖子,然后编辑并重新保存其中的每一篇。

那么你能做什么呢?

First, 做一个标准的WP导出,没有任何额外的插件干扰或干预。

Second, 检查中的标记wxr 看看它是否有相同的内容或是否被修改过。

Third, 导入数据,并检查数据库中的标记,而不是编辑器/前端。

Fourth, 使用标准的默认主题和没有插件的情况下完成上述所有操作。

简单地说,没有证据表明古腾堡有错(没有证据表明有什么错,原因目前是unknown ), 古腾堡不是这样工作的。

最后一点,你所指的不是普通内容,也不是段落。这些是TinyMCE Advanced;经典段落“;块,它们的工作方式可能不同。例如,内容的外观可能与实际的HTML不一样。

我建议确保目标站点上也安装了TinyMCE Advanced。否则,您应该在TinyMCE高级支持论坛上寻求TinyMCE高级支持