以最简单的方式将站点修剪到另一个域

时间:2016-04-03 作者:vico

我需要移动我的简单Wordpres 网站发件人www.mysite.oldplace.comwww.oldplace.com 以尽可能简单和自然的方式。我的简单站点规范:WP 4.4.2Twenty-leven 1.9 themePolylang插件1.8.4

我知道我可以安装一些插件来完成这项工作,但我不确定它们是否真的能做好这项工作。我听说了一些关于在SQL备份/还原脚本中搜索和替换站点名称的内容。但我相信,在我们的时代,这应该通过本地WP工具来解决。请描述一下这个问题的完整解决方法。

2 个回复
SO网友:kovshenin

不幸的是,WordPress中没有任何本机功能来处理搜索和替换所有帖子、选项等的域名。

最接近的是WP-CLIsearch-replace 命令这不是一个官方的WordPress项目,但它的采用率相当高,维护良好,在许多托管平台上默认或按需提供:

wp search-replace \'http://old-site.org\' \'http://new-site.org\'
另一个流行的选择是this 数据库搜索和替换脚本,与WP-CLI一样,它可以正确处理序列化数据,这对于WordPress很重要,因为许多选项和元数据都存储为序列化数组。

SO网友:Innate

如果主机对子域使用单独的文件夹,则可能需要首先将所有内容复制到新域。如果您能够熟练地使用phpmyadmin,那么最简单的方法就是直接在数据库上进行操作。您可以使用mysql查询和phpmyadmin中的查询选项查找和替换每个表:

update [table_name] set [field_name] = replace([field_name],\'[string_to_find]\',\'[string_to_replace]\');
示例:

update wp_options set option_value = replace(option_value,\'mysite.oldplace.com\',\'oldplace.com\');

update wp_posts set post_content = replace(post_content,\'mysite.oldplace.com\',\'oldplace.com\');

update wp_postmeta set meta_value = replace(meta_value,\'mysite.oldplace.com\',\'oldplace.com\');
以上查询应考虑移动站点的基本要求。创建自己表的插件需要在wordpress后端进行编辑。