从Wordpress数据库中删除URL

时间:2013-11-22 23:32:14

标签: wordpress

所以我正在尝试为基于wordpress的网站清理我的开发环境。在生产站点Wordpress数据库中,有成千上万的对特定站点URL的引用。

例如,我的所有永久链接都有完整的地址。所有图像都以其完整地址引用。所有重定向都按其完整地址列出。

要在开发服务器上克隆我的生产数据库,我必须:

  1. 将整个wordpress数据库的mysqldump转换为sql文件。
  2. 搜索并替换生产服务器域名的所有文本,并替换为我的开发服务器IP
  3. 将修改后的sql文件导入我的dev db。
  4. 我显然没有做正确的事......

    关于如何重返正确轨道的建议?

3 个答案:

答案 0 :(得分:1)

使用此方法(随意更改表格前缀和域名):

  /**
    To update WordPress options with the new blog location, use the following SQL command:
    **/

    UPDATE wp_options SET option_value = replace(option_value, 'http://www.old-domain.com', 'http://www.new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';

    /**
    After that you will need to fix URLs of the WordPress posts and pages, which translated from post slug, and stored in database wp_posts table as guid field. The URL values in this field are stored as abolute URLs instead of relative URLs, so it needs to be changed with the following SQL query:
    **/

    UPDATE wp_posts SET guid = replace(guid, 'http://www.old-domain.com','http://www.new-domain.com');

    /**
    If you have linked internally within blog posts or pages with absolute URLs, these links will point to wrong locations after you move the blog location. Use the following SQL commands to fix all internal links to own blog in all WordPress posts and pages:
    **/

    UPDATE wp_posts SET post_content = replace(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');

最后要做的事情(仅取决于您的WP数据库版本)是在wp_options中验证home_urlblog_url是否已被正确替换。

确保wp-config数据正确无误(包括前缀)并且您已完成。

我在过去3年里每周至少做3次这个程序..: - )

答案 1 :(得分:0)

我遇到了同样的问题,但是用一个简单的bash脚本解决了这个问题:

#!/bin/sh
mysql -u«user» -p«password» «db-name» -e "update wp_options set option_value \
='http://dev.example.com' where option_value='http://www.example.com';"

它不会更改数据库中每次出现的网站URL,但它允许您登录而不会自动重定向到生产网站。

无论如何,它对我来说运作得很好。 YMMV

答案 2 :(得分:0)

我意识到我已经从死里复活了一点,但由于没有提到这个解决方案,我认为重要的是要注意。我们多年来一直在使用这个插件取得了巨大的成功。

与手工编辑或其他此类基于纯SQL的解决方案相反,Wordpress存在Duplicator plugin,以便在现场和开发服务器与登台服务器之间轻松实现现有站点的站点迁移,尽管这基本上是将整个站点打包成一个zip存档,其中包含一个安装脚本,可以引导您完成整个过程并确保尽可能干净地进行迁移,以及后续测试,记录过程等。