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 目录下检查导入的文章,就可以开始享受极速的静态博客体验了。


相关推荐
..Dauntless..15 分钟前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划18 分钟前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
QMCY_jason24 分钟前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特28 分钟前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A30 分钟前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络
连山齐名40 分钟前
ai应用开发的学习笔记
服务器·笔记·学习
Shadow(⊙o⊙)1 小时前
仿muduo实现高并发服务器——事件就绪管理Channel.hpp
服务器·c++
あ-1 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu1 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip
黄俊懿1 小时前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构