我对Wordpress比较陌生,在一台服务器上有一个由其他人开发的站点,必须将其部署到另一台服务器上。这个网站安装了bbpress,还有大量其他东西。然而,它似乎还包含(某处)对其他开发人员服务器的引用,因此,即使我已将该站点复制到我的服务器上,所有链接仍然指向他的。我假设在模板文件或数据库的某个地方有一个对他的网站的引用,但我不知道在哪里。我做了一次搜索/替换,并替换了我能找到的内容,但仍然发生了同样的事情。我只是想知道是否有什么真正明显的地方我需要寻找这样的东西。在我看来,他只是做了一件相当愚蠢的事,对自己网站的引用进行了硬编码;但我不知道,也许这是有原因的。
WordPress站点中对其他站点的引用
主题中可能有硬编码链接;下载它并使用文本编辑器进行多文件搜索。
编辑文本转储会破坏序列化数据;请参阅此处的其他问答:Why is my database import losing text widget data?
Update 4/19/2015 要正确更改数据库中的URL,下面的SQL查询在phpmyadmin或adminer中运行时可以正常工作,但最好使用正确反序列化/重新序列化php数据的工具,如https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
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\');
数据库中很可能仍有大量引用。
我将如何更改引用将执行以下操作:
以SQL文件格式导出数据库http://dev.example.com 并替换为http://www.example.com
http://davidcoveney.com/mysql-database-search-replace-with-serialized-php/
3/15/2015 Edit: Link above is dead; use https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
因此,要使用上述脚本:
导出数据库并导入到新数据库
如果链接硬编码到主题文件中,恐怕您需要相应地替换它们。
如果按照@Brady所说的进行操作,则需要重新配置选项,因为步骤3将损坏SQL导出文件中的序列化数据。
我建议使用WordPress OneClick Migration 剧本当WordPress站点从服务器/站点移动到服务器/站点时,它将更新站点信息。它附带detailed instruction 介绍如何在自述文件中使用迁移脚本。md文件。
更新(2011年6月23日):
免责声明:WordPress OneClick Migration 该脚本是我自己编写的,是开源的,并根据GPL3获得许可。