小恐龙工作室

专注效率工具与实用技巧分享

May 25, 2026 - 编程开发

网站架构切换记录:从WordPress到Hugo,两天填坑之旅

一直使用WordPress搭建博客,最近频繁收到PHP版本过低的提示,而且访问速度也越来越慢。痛定思痛,决定放弃数据库和PHP,彻底转向静态网站。

对比了几款静态页面生成工具,最终选择了 Hugo。其实 https://gw.xkonglong.com 用的是 Hexo,但感觉功能有些简陋,而且据说速度不如 Hugo。之前也动过几次切换的念头,但因为工作忙、网站还能凑合用,就一直“得过且过”……

直到最近,WordPress 即将升级到 7.0,还要加入 AI 能力,资源占用只会更高。再加上前几天服务器突然崩溃了一次,终于下定决心:抽时间换成静态网站。

基本思路

WordPress 导出 Markdown 文章 → Hugo 生成静态页面 → 发布。听起来很简单?实际操作下来,一路都是坑。

第一个坑:WordPress 转 Markdown

一开始图省事,用了 WordPress 自带的导出 XML 功能,然后配合 wp2hugo 工具生成 Markdown。结果一团糟——大量 HTML 标签无法正确转换成 Markdown 格式。

最后老老实实安装了开源插件 wordpress-to-hugo-exporter。虽然需要手动安装插件(一开始嫌麻烦没选它),但事实证明——只有它的转换效果最好

第二个坑:Markdown 图片路径解析

插件生成的 Markdown 文件会自带同名文件夹,结构如下:

posts/wordaddin
      ├── index.md
      └── image
            ├── wordaddin.png
            └── wordaddin1.png

一开始觉得挺完美。但生成静态页面后才发现:文章页没问题,列表页的图片路径全乱了

在文章页中,image/wordaddin.png 被正确解析为 ……/posts/wordaddin/image/wordaddin.png,图片正常显示。但在列表页中,路径变成了 ……/posts/image/wordaddin.png,图片直接 404。

查阅 Hugo 文档,官方推荐将所有图片放在 \static\images 目录下。于是求助 AI,写了一段 Python 脚本:批量替换 Markdown 中的图片路径,把所有图片移动到 \static\images 文件夹,并按 “文档名称_序号.png” 的规则重命名,避免重名冲突。

第三个坑:Python 代码解析不全

由于以前在 WordPress 中使用了各种相对路径和绝对路径的混搭,导致部分转换后的 Markdown 链接和图片没有被完整迁移。有些图片点击后还会跳转到旧站点的绝对路径……

又花了一整天人工找错和修改。 如果舍得砸 Token,其实完全可以丢给 AI 全自动处理——这是事后才悟出的道理。

不算坑的“小折腾”

至于 Hugo 文档的学习、配置,以及主题的挑选、测试、修改——这些不算坑,但也花了不小精力。整个过程前前后后用了 两天 时间,成功将一个 PHP + MySQL + WordPress 的博客,变成了纯静态网站。

最终效果

网站速度飞快,资源消耗极低。再也不怕服务器崩溃了。