这是将博客从 WordPress 迁移到 Hashnode 的分步指南。

感谢Tina Holly的博客文章和脚本帮助我将我的 WordPress 博客网站迁移到 Hashnode。这篇博文建立在相同的基础上,但提供了更详细的迁移指南。

我们将在 4 个主要步骤 中介绍迁移:

  • 从 WordPress 下载帖子内容

  • 下载图片

  • 使用他们的 API 将帖子发布到 Hashnode

  • 获取迁移脚本

  • 清理下载的帖子

  • 将帖子发布到 Hashnode

  • 回溯帖子并手动修复图像

从 WordPress 下载帖子内容

要开始迁移,您需要先在 WordPress 上下载现有帖子。默认情况下,这些是 XML 格式,但我们将使用WP Import Export Lite将帖子导出为 JSON。

  1. 前往您的 WordPress 网站管理面板。

  2. 导航到 Plugins -> Add New 并搜索 wp import export lite。 Wp 导入导出 install.png

  3. 安装激活“WP Import Export Lite”插件。

4.现在插件已经安装并激活,点击插件中的Export选项。 WP 导出插件.png

5.在_新导出_选项页面上,

  1. 选择导出类型为Post

  2. 保持过滤选项和字段部分不变。

  3. 在高级选项部分,选择导出文件类型为JSON

  4. 点击右上角的Customize Export File按钮开始导出。 Wp 导出选项 Page.png

  5. 导出过程完成后,点击Download按钮下载帖子的 json 文件。 WP 导出下载 - 1.png

  6. 下载的文件将包含一组具有以下形状的对象。

{
“ID”:“161”,
“标题”:“理解 CRON 表达式”,
"Content": "许多 Azure 资源,如 Web 作业、Azure 函数、逻辑应用程序使用 CRON 表达式 [...]",
“摘录”:“”,
“日期”:“2018 年 8 月 29 日”,
“帖子类型”:“帖子”,
“固定链接”:“http:\/\/kumarashwinhubert.com\/2018\/08\/29\/understanding-cron-expressions\/”
}

7.将下载的json文件重命名为posts.json

下载图片

接下来,您需要从 WordPress 下载所有图像。图像按年和月存储在./wp-content/uploads目录中。下载图片的方法有很多,但最简单的方法是使用 SFTP 工具下载此文件夹。

wp-content/
└── uploads
    ├── 2018
    │   ├── 01
    │   ├── 02
    │   └── 03
    └── 2019
        ├── 01
        ├── 02
        └── 03

注意: 目前没有自动方法可以将图像与您的博客文章内容一起迁移。本文针对手动上传图片到hashnode的CDN,最后更新迁移的博文。如果您想使用其他存储提供商,请上传图片并替换posts.json文件中的 url,然后再继续。

使用他们的 API 将帖子发布到 Hashnode

Hashnode 有一个GraphQL API。它在功能上有所限制,但具有大部分基本功能。我们打算使用的 API 是createPublicationStory;但我们可以使用WordPress-Hashnode MigratorGitHub 项目中存在的迁移脚本,而不是手动清理下载的帖子 json 并创建请求正文以访问 API。

下一组步骤将使用此 GitHub 项目来清理和发布帖子。该项目是一个节点应用程序,因此请确保您的系统上安装了node

获取迁移脚本

1、从GitHub克隆WordPress-Hashnode Migrator项目。

2.将上一步下载的posts.json复制到克隆项目的根目录下。

  1. .env.sample重命名为.env文件夹结构将如下所示: 项目结构.png

4、在克隆的项目中打开终端,安装依赖:

npm 安装

清理下载的帖子

此步骤处理./posts.json中的帖子并执行以下操作:

  • 从内容 HTML 中删除脏属性

  • 将帖子内容转换为 Markdown

  • 在 ./posts/cleaned.json 中写入一个新文件

运行以下命令来清理帖子。

npm run cleanse

发布帖子到Hashnode

确保您已经创建了 Hashnode 站点;如果没有,现在是创建一个的好时机,因为我们需要Publication_IdAPI_Key继续。

  1. 前往您的 hashnode 站点的仪表板。复制并保留 URL 中的 publicationId,格式为https://hashnode.com/[Publication_Id]/dashboard

  2. 导航到开发者设置页面 -hashnode.com/settings/developer和Generate New Token

3.打开项目中的.env文件。将HASHNODE_PUBLICATION_ID值替换为您的发布 ID,将HASHNODE_API_KEY替换为您生成的密钥。

.env文件应如下所示:

HASHNODE_PUBLICATION_ID=602xxxa999eabxxxxxxx1a9b
HASHNODE_API_KEY=030xx44x-exx6-4xx4-8xxe-52xxxxxxxx1a

保存 .env 文件并返回终端并运行以下命令将帖子发布到 hashnode。

npm run migrate

迁移脚本 output.png

一旦脚本成功执行,博客文章就会发布到您的 hashnode 站点。

回溯帖子并手动修复图像

目前 Hashnode 的 GraphQL API 不支持回溯帖子,因此需要手动更新每个帖子的回溯。

导航到每个迁移的帖子,然后单击Edit -> Settings并设置backdate。如果需要,还可以设置tagsCover Image在 backdate.png 上发布

如前所述,没有一种简单的方法可以从您的 WordPress 博客迁移图像。您需要手动更新每篇博文中的图片。

导航到每个迁移的帖子,您会看到以/wp-content/uploads/2020/08/filename.png的形式对旧图像的引用。使用 hashnode 编辑器中的Upload an image选项从之前下载的 WordPress 图像上传图像。 上传图片.png

结论

而已 !!!

您的 hashnode 博客已启动并运行所有迁移的 WordPress 帖子。

希望这对您从 WordPress 到 Hashnode 的迁移过程有所帮助。

Logo

更多推荐