为什么网站URL和文件夹上的菜单会断开?

时间:2019-12-06 作者:Nobody

我刚刚将一个站点从旧域移到了新域(这意味着服务器端文件夹也会更改)。

我用新域替换了数据库中旧域的所有实例,但找不到该目录名的任何实例。我检查了数据库中没有提到旧的域名或目录名(至少不是纯文本)。

各种各样的东西莫名其妙地坏了,其中一个就是所有的菜单:它们消失了(如果菜单是空的,主题有逻辑隐藏菜单,所以这可能是触发的)。删除和重新创建它们是可行的,但我想实现自动化。

有人能向我解释一下菜单是如何以一种不会在数据库中以纯文本形式显示的方式依赖于域的吗?url是否以某种方式编码,使我的正则表达式无法找到它?

1 个回复
SO网友:Elgoots

当您使用wordpress执行mysql查询查找和替换数据库中的字符串时,您可以中断序列化数据,并从本质上中断所需表和表列之间的链接。

您唯一的选择是在运行这些查询之前恢复数据库。在wp\\U选项中,仅更改“siteurl”和“home”url以适合您的新域。

如果您的内容中有硬编码链接,并且希望节省时间。您可以尝试运行:

UPDATE wp_posts
SET post_content= REPLACE(post_content, \'olddomain.com\', \'newdomain.com\');

UPDATE wp_posts
SET guid= REPLACE(guid, \'olddomain.com\', \'newdomain.com\');
这将在不破坏小部件或主题选项的情况下处理99%的旧域链接。我建议您从那里手动编辑菜单、小部件和主题选项,这不会花费您很长时间来更新上述查询的内容和媒体。

如果你想换一种方式。您可以还原原始数据库。在wp\\U选项中更改siteurl和home url。一旦你进入wp管理之后,在新的领域。

您可以使用以下插件之一来保持序列化数据的完整性(显然)

https://wordpress.org/plugins/better-search-replace/

https://wordpress.org/plugins/search-and-replace/

相关推荐

WordPress编辑角色删除外观菜单中除‘menus’之外的所有内容

我正在尝试删除对角色编辑器WP admin中外观菜单中所有内容的访问权限。或者至少,只需删除对主题和插件的访问即可。我发现了如何删除整个外观菜单,而不是像那样删除其中的一部分。这可能吗?最好是功能方面的东西。php,以便在需要时打开/关闭此选项。