WordPress博客迁移到Hexo静态博客教程

从 WordPress 迁移到 Hexo,主要分为 "导出-转换-部署" 三个步骤,核心是使用 Hexo 官方插件 hexo-migrator-wordpress。整个过程并不复杂,以下是详细步骤:

一、前期准备:搭建 Hexo 环境
  • 安装 Node.js 和 Git:Hexo 基于 Node.js,需先安装 Node.js(自带 npm)和 Git。

  • 安装 Hexo :打开终端,执行 sudo npm install -g hexo-cli。

  • 初始化博客 :创建一个新文件夹(如 myblog),进入后执行 hexo init 和 npm install。

二、导出数据:从 WordPress 获取 XML 文件

登录 WordPress 后台,在左侧菜单找到 "工具" → "导出" ,选择 "所有内容" 并点击 "下载导出的文件" ,得到一个 .xml 文件。

三、迁移数据:导入到 Hexo
  • 安装插件 :在 Hexo 博客根目录,运行 npm install hexo-migrator-wordpress --save。

  • 执行导入 :运行 hexo migrate wordpress <source>,将 <source> 替换为你刚下载的 XML 文件路径。

  • (可选)下载图片 :如需一并迁移图片,加上 --import-image 参数:hexo migrate wordpress <source> --import-image。

    如果上面命令下载图片失败,可以手动上传(最稳妥):通过 FTP/SFTP 连接服务器,进入 wp-content/uploads 文件夹,将整个 uploads 目录下载到本地,然后复制到 Hexo 的 source 文件夹中。

四、效果预览与后续设置
  • 本地预览 :运行 hexo clean && hexo generate && hexo server,然后访问 http://localhost:4000 查看迁移效果。

  • 如果文章图片链接不对,可以使用下面脚本一键批量替换:批量把当前目录下所有 .md 文件中的 http://www.test.com/wp-content/uploads 替换成 /uploads和批量把当前目录下所有 .md 文件中的 https://www.test.com/wp-content/uploads 替换成 /uploads

    bash 复制代码
    cd ~/myblog/source/_posts/
    sed -i 's|http://www.test.com/wp-content/uploads|/uploads|g' *.md
    sed -i 's|https://www.test.com/wp-content/uploads|/uploads|g' *.md
  • 设置主题 :在 Hexo 官网选择主题,将下载的主题文件夹放入 themes 目录,并修改根目录的 _config.yml 文件。

五、本地运行hexo clean && hexo generate && hexo server不自动退出,需要Ctrl+C才退出的解决方法

结论:hexo generate 本身不应该会"卡住不退出",如果它执行完了不退出,说明有某个 Node.js 子进程或后台句柄没有被释放,Hexo 主进程在等待它。你本地和 EdgeOne 遇到的是同一个根因。

先验证一个关键事实

在终端运行 hexo generate 后,等一下 ,然后看它是否超过 30 秒还不停。如果 30 秒内退出了,那只是"慢",不是"卡住"。

根因:Node 进程有未释放的句柄

进一步定位到罪魁祸首是 camaro(被 hexo-migrator-wordpress 使用)和 eslint 等库里的 Worker 线程 在空转,导致进程无法自然退出。卸载 hexo-migrator-wordpress 后,问题立刻消失。

你现在应该做的事

第一步:检查是否有"历史遗留"插件

你曾经用过 WordPress 迁移吗?运行:

bash 复制代码
npm ls hexo-migrator-wordpress

如果有输出,说明这个插件还在。它依赖的 camaro 会在后台创建 Worker 线程,导致 Hexo 无法自动退出。

第二步:直接卸载它

bash 复制代码
npm rm hexo-migrator-wordpress

卸载后,再次运行 hexo generate,看是否能正常退出。

💡 几个关键提醒
  • 图片处理 :如果文章引用了 WordPress 的图片,建议迁移时使用 --import-image 选项。
  • 永久链接 :迁移后文章链接会变,若想保留原链接,可安装 hexo-generator-alias 插件或手动配置永久链接格式。
  • 内容检查:导入后建议抽查几篇文章,确保 Markdown 格式和图片显示正常。
  • 部署上线:Hexo 是静态博客,通常部署到 GitHub Pages 等免费托管服务,无需服务器。

迁移完成后,旧 WordPress 网站的文章和页面就已成功转移到 Hexo。记得在 source/_posts 目录下检查导入的文章,就可以开始享受极速的静态博客体验了。


相关推荐
中杯可乐多加冰1 小时前
解决方案:CEB 文件 Web 端在线预览方案,Linux部署ceb文件在线预览工具
linux·运维·前端·ceb
鬼手点金1 小时前
Claude Code示范案例-修复 Bug 工作流
java·服务器·前端·javascript·bug·openclaw
一条破秋裤1 小时前
Linux 进程通信介绍:内存隔离与 IPC 分类
java·linux·服务器
码完就睡2 小时前
Linux——计算机网络基础概论
linux·计算机网络
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 时间系统——Time / Clock / Duration
linux·c++·人工智能·学习·机器学习·机器人·自动驾驶
cuijiecheng20182 小时前
MobaXterm上传大文件到rk3588板子失败
linux
半仙白桑2 小时前
内核篇第十三讲:system-V消息队列
java·linux·网络
xlq223222 小时前
服务器复习3
服务器
盐焗鹌鹑蛋2 小时前
【Linux】线程概念和控制
java·linux·服务器