正确搜索和替换查询以更改WordPress数据库中的URL吗?

时间:2010-09-06 作者:MikeK

使用临时地址在生产箱上开发了一个站点(http://IP-adddress).

现在是时候上线了。很久以前,我曾经成功地使用phpMyAdmin并进行了搜索/替换,但我想知道这是否仍然是“最好的”方法。

这些还能用吗?该网站位于WordPress 3.0.1中。

update wp_options set option_value=replace(option_value,\'OLD URL\',\'NEW URL\') where option_value like "%OLD URL%";    
update wp_posts SET guid=replace(guid, \'OLD URL\',\'NEW URL\');
update wp_posts SET post_excerpt=replace(post_excerpt, \'OLD URL\',\'NEW URL\');
update wp_posts SET post_content=replace(post_content, \'OLD URL\',\'NEW URL\');    
update wp_postmeta SET meta_value=replace(meta_value, \'OLD URL\',\'NEW URL\');
我在这里读了很多相关的帖子,但没有一篇是关于实际问题的。

我以为search and replace plugin 听起来很有希望,但我找到的唯一文档是德语,我看不懂,所以我太谨慎了,不敢尝试。

这条线是关于moving from development to production 里面有很多信息,但是:

大部分都是我的问题,没有列出任何疑问TYIA,

迈克

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

是的,这些查询仍然有效。

这是一个完整的操作方法:http://web-kreation.com/tutorials/migrating-a-wordpress-site-ftp-phpmyadmin-and-sql-queries/

SO网友:goldenapples

这将给您带来一些问题:

update wp_options set option_value=replace(option_value,\'OLD URL\',\'NEW URL\') where option_value like "%OLD URL%";

它将损坏存储在选项表中的任何活动小部件数据,因为该信息很可能是序列化的,并且查询不考虑序列化数据。这就是wp黑客线程的要点。然而,该线程中似乎没有人提出处理序列化数据的简单查询。

您可能只想分别更改wp\\u选项中“siteurl”和“home”的选项,然后从仪表板修改您的小部件。

SO网友:MikeSchinkel

其他人已经就您要求的SQL查询给了您一些建议,我希望学习它们可以帮助您完成这一过程;我知道我总是帮助我在需要操作的地方学习一个级别。

但是你也问了最好的方法,我建议你再看看你引用的帖子(Moving from Development to Production) 但这次look at the plugin 我在帖子中引用,aplugin to fixup the data 从一台服务器转到另一台服务器之后。与其周期性地用SQL弄脏你的手,不如重新学习,为什么不把它委托给处理它的插件呢?

插件是fully hookable 因此,当您确实需要使用SQL来处理其他插件引入的其他数据时,您可以对其进行扩展,从而在您从一个主机移动到另一个主机时,它可以处理任何需要修复的数据。也许最棒的是gives you a place in /wp-config.php to list all of the details of each host; i、 例如,域、根路径、数据库、数据库用户、密码,甚至谷歌地图API密钥之类的东西。

该插件仍在alpha中,这就是为什么它位于StackExchange上,但尚未在WordPress插件库中列出的原因:

结束

相关推荐