将两个 WordPress 博客的所有文章合并到一个博客中

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

我不确定这是否是最佳方法,但最近我需要这样做,这就是我的做法。本教程重点关注“关闭”一个博客并将其合并到另一个博客的场景,而不是创建全新的博客。

**在执行这些步骤之前,请备份两个数据库并将其分开安全保存**

步骤 1:将 wp_posts 表导出为 .SQL
首先,您需要从要关闭的博客中获取 wp_posts 表的 .SQL 文件。如果您有权访问 phpMyAdmin,这非常容易。转到“导出”选项卡,选择 wp_posts 表,然后“另存为文件”。这将允许您将 SQL 文件保存到桌面。完美。如果您精通此类操作,可能还有其他类似的简单方法可以通过 shell 完成。

exportposts.png

步骤 2:对另一个博客重复此操作
我们实际上不需要此 SQL 文件,但我们需要知道该文件中最后一个帖子的 ID。因此,请滚动到底部,查看它是多少。
lastpostnumber.png

步骤 3:删除 CREATE TABLE 部分
导入时该表将已存在,因此您可以从步骤 1 获取的 SQL 文件中删除此部分。

步骤 4:重新编号
这是耗时的部分。您需要为第一个 SQL 文件中的每个条目提供新的 ID,从步骤 2 获取的最后一个数字后的下一个数字开始。如果您尝试在不执行此操作的情况下导入 SQL,则会出现大量重复项,并且导入将无法正常工作。除非您意外地将其覆盖到重复项上,然后您就完蛋了 =(。只需执行此操作。

renumber.png

如果您不这样做

duplicate.png

步骤 5:移动您的图像
您的帖子可能包含大量指向其自身域上图像的链接。如果您想完全删除旧域名,则需要将这些图像移动到新服务器。希望它们都位于一个不错的目录中,以便您可以移动它们并将其与已存在于要移动到的服务器上的图像合并。继续将其移动过去。这里的技巧是在 SQL 文件中的文件路径上执行查找/替换。执行以下操作。

查找:http://OLD-domain.com/wp-content/uploads/
替换所有:http://NEW-domain.com/wp-content/uploads/

步骤 6:导入
现在您已拥有经过精心修复的新 SQL 文件,它已准备好导入。转到要合并这些帖子的站点的 phpMyAdmin。转到“导入”选项卡,浏览您的文件,然后按“执行”。除非出现任何错误(如上面显示的重复错误),否则您的新帖子将立即集成到此站点中!

importdb.jpg

您将丢失什么
评论、类别、用户……几乎所有除了帖子本身之外的内容。您可能可以使用与上面描述的类似技术来保存这些内容,但我认为这会更加复杂。我对此方法的结果感到满意,因为“旧”博客上的评论活动确实不多。

随机提示

  • 此过程由于您丢失的所有内容而变得有点糟糕,最好在开始多个博客之前先仔细考虑一下。专注于一个博客并给予它所有的爱比将爱分散到两个博客上要容易得多。就像对待孩子一样。(开玩笑的。)
  • 导出 SQL 时,请勿选中“删除表”复选框。这对于移动/重写表非常有用,**但在这种情况下则不适用。**如果您的 SQL 包含该命令,则所有旧帖子都将丢失并被新帖子替换。(糟糕。)
  • 处理活动数据库是一项危险的业务。这些数据库包含您博客的所有内容。如果出现问题,您可能会丢失所有内容。请首先备份两个数据库,然后您就可以放心了。

**更新** Blogging Tips 上的 Kevin 指出,有一种更容易且更好的方法可以做到这一点。使用 WordPress 中内置的导出/导入功能。哦,天哪,我现在感觉自己很聪明 =)。