WordPress迁移到本地环境

标签 wordpress

背景

我被分配更新第 3 方 Wordpress 主题,第一项任务是将生产网站迁移到我的开发环境。

迁移

  1. 我已通过 ssh 连接到生产服务器,压缩整个网站文件夹并连同转储的数据库一起传输到我的本地环境。
  2. 我已将其部署到与生产服务器具有相同灯配置的 vagrant box 中。
  3. 我已在开发环境中恢复的数据库中运行了以下更新。

:

UPDATE wp_options SET option_value = replace(option_value,    'http://production.com', 'http://dev.site') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET post_content = replace(post_content, 'http://production.com', 'http://dev.site');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://production.com','http://dev.site');

问题

在我的开发环境中访问该网站时,我注意到许多生产短代码已损坏。

有什么想法吗?

最佳答案

大多数迁移中断是由错误的序列化数据引起的。

修复这些中断的最简单方法是强制重新创建数据。这可以通过强制插件将序列化数据重写到 MySQL 数据库来实现。

按照以下步骤操作将有助于解决您可能遇到的大多数迁移错误:

  1. 停用重新激活所有插件
  2. 激活不同的(最好是默认/内置)主题,然后重新激活您当前的主题。
  3. 前往设置 -> 固定链接,然后点击“保存”(保持所有设置不变)

对于阅读此答案的其他人: 需要注意的是,如果您的 URL 发生更改并且您没有运行问题中提到的 SQL 修复

,那么几乎所有这些都是不可能的

如果需要,我在下面添加了我自己的版本,您只需记住替换 oldsite-url.comnewsite-url.com 具有相关值。

如果相关数据库使用自定义表前缀(即不是 wp_),您需要记住查找 -> 替换也是如此。

这是 SQL 查询:

UPDATE wp_options SET option_value = replace(option_value, 'http://oldsite-url.com', 'http://newsite-url.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = REPLACE (guid, 'http://oldsite-url.com', 'http://newsite-url.com');
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://oldsite-url.com', 'http://newsite-url.com');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://oldsite-url.com','http://newsite-url.com');

关于WordPress迁移到本地环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39497293/

相关文章:

php - 联系表格 7 : Is there a 'Confirm E-mail' input type?

php - 如何使自定义元框支持 WordPress 中的可视化编辑器?

css - 古腾堡画廊 block - 修复相同尺寸的图片

javascript - 如何通过Javascript检索wordpress中的当前用户?

wordpress - Woocommerce - 自定义电子邮件类会创建重复的电子邮件

javascript - 使用 JavaScript 脚本加载外部 HTML(通过 WordPress 中的嵌入代码)

mysql - woocommerce - 从 mysql 获取类别图像

CSS:WP Twenty Fourteen 上的全高容器

php - 在循环中显示自定义分类 Wordpress

wordpress - Wordpress 帖子的 Facebook 通知