发展环境和“生产”环境领域

时间:2015-03-15 作者:Chris Dargis

我正在Mac上开发,拥有一个类似以下的域:

http://localhost/~user/foobar

My(temp)live environment位于我的域中,域最终为:

http://example.com/foobar, 或http://localhost/foobar

这只是暂时的,因为我的客户最终会购买一个域名http://foobardomain.com 我必须把所有的东西都迁移到那里。

我正在使用database sync 同步我的数据库,到目前为止(我想直到现在)运行得很好。

我已经做了很多工作,开始通过wordpress UI上传图像,结果发现完整路径保存在wp_posts 桌子这显然是一个问题,因为域非常不同,图像不会加载到实时或开发站点上。我可以运行如下查询:

UPDATE wp_posts set post_content=REPLACE(post_content, \'http://localhost/~user/foobar\', \'http://example.com/foobar\')
我的问题是:

wp_posts.wp_content 专栏是我唯一需要担心的专栏

1 个回复
最合适的回答,由SO网友:markratledge 整理而成

您还需要更改主题选项中的URL,其中包括设置标题图像URL的选项、小部件数据中的URL以及插件选项中的URL。其中一些URL是相对的,但许多URL是绝对的。

最好的方法是使用一个工具,在整个数据库中查找/替换URL,并正确地反序列化/重新序列化php数据,例如WordPress Serialized PHP Search Replace Tool.

有些主题无法正确序列化数据,因此有时在使用上述工具时,主题将丢失所有选项和小部件数据。但这与主题不符。我在WordPress目录中遇到的所有主题,以及来自StudioPress等知名公司的主题,都能正确处理序列化的php数据,并且主题数据没有任何问题。

一些插件(如备份和安全插件)在激活时读取完整的服务器路径,例如/server1/home/username/public_html/wp-content/plugins/aplugin/ - 这些插件需要在新主机上手动重置。但通常,这些插件在网站上线之前都不会激活。

看见WordPress Serialized PHP Search Replace Tool

有关完整参考,请参阅Moving WordPress « WordPress Codex.

如果您确实想使用您在问题中提到的MySQL查询,除了您已经使用的查询之外,还需要更改GUID和Posteta:

UPDATE wp_posts SET guid = replace(guid, \'http://www.olddomain.com/\',\'http://www.newdomain.com/\');

UPDATE wp_postmeta SET meta_value = replace(meta_value, \'http://www.olddomain.com/\', \'http://www.newdomain.com/\');

结束

相关推荐

如何获得更好的性能,从domain.tld/35重定向到domain.tld/Full-Permarink?

基于this answer 我创建了一个函数来更改来自域的短链接。tld?p=435到域。tld/435和重定向域。tld/435至域。tld/全永久性:function shorter_shortlink() { global $post; $shortURL = get_bloginfo(\'url\').\'/\'.$post->ID; if(!empty($shortURL)) { return $shortURL; } else