每当我创建一个新的网站时,我首先在一个子域上创建一个分期站点,比如"stage.domain-name.com“。
在一切正常工作之后,我导出数据库,在notepad++中打开它,并对“subdomain.doman-name.com”执行一个查找/替换,并将其替换为“dom-name.com”.最后,我将它导入到一个新的数据库中,用于实时站点。
我的问题是..。如果我只想使用phpmyadmin在整个数据库上执行这个简单的查找/替换操作,我需要运行什么SQL查询?
-CH
发布于 2011-01-25 11:25:54
保存URL的表是wp_options。您应该对使用站点URL的列进行更新:
UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "siteurl"
UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "home"我可能丢失了一些值,但是每当您再次执行这个查找/替换过程时,您可以注意到应该更新的值和表,并将它们添加到这个脚本中。
WordPress代码索引有一个关于如何更改站点网址的很好的指南,也许这对你更有用:更改站点网址
发布于 2011-01-25 14:02:41
最好做选项、帖子、帖子内容和帖子元:
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');另外,使用phpMyAdmin和MySQL包包发布搜索数据.和搜索RegEx是一个很好的WP插件,可以通过所有的帖子和页面搜索和替换Grep。
更新6/16/2015:使用下一句中链接的工具要好得多,因为在数据库转储中进行简单的查找/替换会破坏序列化的数据。以这种方式查看interconnectit.com WordPress序列化PHP搜索替换工具。,您不会破坏序列化的数据,也不需要在post内容上运行RegEx,因为互连脚本在任何地方都会更改URL。我一直使用该工具将站点迁移到不同的域,或者简单地进行从http到https的全局更改,以强制SSL没有插件,并更改内容中的所有URL以防止不安全的元素错误。
编辑9/02/21 WP CLI也是一个很好的工具,它正确地处理序列化的数据。请参阅https://developer.wordpress.org/cli/commands/search-replace/
发布于 2011-08-02 19:47:12
这是一个伟大的插入脚本,我使用,它与序列化数组,WP用于存储选项的工作非常好。当您完成任务时,请确保将其从远程服务器中删除,因为这会带来巨大的安全风险。
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
https://wordpress.stackexchange.com/questions/7693
复制相似问题