【问题标题】:Removing URL from Wordpress Database从 Wordpress 数据库中删除 URL
【发布时间】:2013-11-22 23:32:14
【问题描述】:

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

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

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

  1. Mysqldump 整个 wordpress 数据库到一个 sql 文件。
  2. 搜索并替换生产服务器域名的所有文本并替换为我的开发服务器 IP
  3. 将修改后的 sql 文件导入我的 dev db。

我显然没有做对......

关于如何重回正轨的建议?

【问题讨论】:

  • Moving WordPress 页面有一些插件建议
  • 您可以在数据库上运行 SQL 查询来查找和替换 url。我会为您提供代码,但我不知道您引用的是什么表/字段。以后在开发的时候,一定要使用相对路径。更新或评论信息,我会提供代码。

标签: wordpress


【解决方案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 DB 版本)是在 wp_options 中验证 home_urlblog_url 已被正确替换。

确保wp-config 数据正确,(包括前缀),您就完成了。

在过去 3 年中,我每周至少进行 3 次此程序.. :-)

【讨论】:

    【解决方案2】:

    我也遇到过同样的问题,但是用一个简单的 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

    【讨论】:

      【解决方案3】:

      我意识到我有点起死回生,但由于没有提到这个解决方案,我认为它足够重要,需要记下。我们多年来一直在使用这个插件并取得了巨大的成功。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-02
        • 2011-11-20
        • 2011-08-05
        • 2018-03-20
        • 2018-07-20
        • 1970-01-01
        • 2021-10-04
        相关资源
        最近更新 更多