WordPress迁移到Hexo踩坑记录

Karl Lao Lv3

WordPress 导出文件

工具 → 导出 → 所有内容 → 下载导出文件

安装hexo

1
2
3
4
5
6
node -v
npm -v
npm install -g hexo-cli
hexo init hexo-site-name
cd hexo-site-name
npm install

迁移文章和页面

安装迁移工具

1
npm install hexo-migrator-wordpress --save

把导出的xml文件上传到服务器执行命令

1
hexo migrate wordpress /path/to/wordpress-export.xml

完成迁移检查目录

可以发现会有不少草稿、未编辑的旧文章,这个可按需处理

1
source/_posts/

另外在source目录下,也会有不少原有的页面转换成page了,也是需要按需处理和清理的。例如原本的‘关于’页会变成source/about/index.md

可以在_config.yml文件中添加页面入口,如:

1
2
3
url: https://example.com
root: /
adbout: /about

启动看看

1
2
3
hexo clean
hexo generate
hexo server

访问http://localhost:4000

坑一

迁移工具:hexo-migrator-wordpress可能会导致启动失败或者卡死,转换完成后建议卸载掉它

1
npm uninstall hexo-migrator-wordpress

坑二

还是迁移工具hexo-migrator-wordpress问题,会运行报错。

导出的标准 WordPress xml文件,若原站点的title为空会认为格式错误; hexo-migrator-wordpress@2.1.2 对 rss/channel/title 的过度简陋检测。先查看xml文件 channel 下的 title 是否为空;若为空,补一个站点标题即可。

坑三

原有的页面你可能是自定义的html页面,但是会粗暴的转换成md文件。我们需要手动迁移

在source目录下对应的页面文件夹,修改index.md文件,如source/about/index.md

html的格式要如下配置

需要注意的点:

  1. 将原 HTML 中 标签里的内容放进去;不要保留完整的 、、、body> 等外层标签。
  2. 不用使用全局的css,不然会影响主题样式。将页面专属样式限制在指定页面内。
  3. HTML 容器内部尽量不要出现空行。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
---
title: 关于我
layout: page
comments: false
toc: false
---
{% raw %}
<style>
这里放之前提供的全部 CSS
</style>
<div id="love-time-machine">
这里放上面的 HTML
</div>
<script>
这里放计时 JavaScript
</script>
{% endraw %}

迁移媒体文件

推荐策略:保持原路径
如原媒体 URL 为:

https://example.com/wp-content/uploads/2024/06/photo.jpg
将 WordPress 的:

wp-content/uploads/
完整复制到:

source/wp-content/uploads/
这样生成后仍然是:

https://example.com/wp-content/uploads/2024/06/photo.jpg

在 _config.yml 中配置:

1
2
skip_render:
- "wp-content/uploads/**"

安装主题

可在官网选择各种主题装饰,我选择的是Butterfly主题

坑四

_config.butterfly.yml 配置。模板要求 subtitle 是一个配置对象,如果没有配置会导致运行失败报错:

1
Cannot read properties of null (reading 'enable')
  • Title: WordPress迁移到Hexo踩坑记录
  • Author: Karl Lao
  • Created at : 2026-09-04 18:36:48
  • Updated at : 2026-09-04 18:43:00
  • Link: https://lao.plus/2026/09/04/WordPress-migration-to-Hexo/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments