将 WordPress 主题迁移到 Astro 与 EmDash

实用的主题迁移思路:把 WordPress 主题视为前端与内容模型翻译项目,而非逐文件代码搬运。

将 WordPress 主题迁到 EmDash,不应从「找一一对应的模板」开始。

这种做法往往会把过多旧耦合一并带过去。WordPress 主题常常把展示、CMS 假设、辅助逻辑与副作用混在一起——在历史上说得通,但在现代前端栈里会变得别扭。

更好的做法是先把主题实际在做什么拆开来看。

EmDash 管理端与前台界面

从主题的真实职责入手

在写任何 Astro 代码之前,先用平实语言盘点当前主题。

需要识别:

  • 页面类型
  • 共用布局
  • 导航模式
  • 归档行为
  • 可复用 UI 组件
  • 主题特有的数据需求

这样你就有一张「哪些必须重建、哪些可以简化」的地图。

翻译的是行为,不是文件

在 EmDash 里,有意义的单位不是某个 WordPress 主题文件,而是最终呈现出来的体验

在 Astro 与 EmDash 中,典型主题会变成:

  • 各页面类型的路由
  • 共用结构的布局
  • 可复用 UI 的组件
  • 视觉体系的样式
  • 主题所依赖内容模型的 schema 定义

这比传统的「往主题里塞逻辑直到能跑」要健康得多。

在追逐视觉一致之前,先重建内容模型

很多团队还没弄清目标内容结构,就想保留旧 HTML 输出,主题迁移往往会因此失败。

若 WordPress 主题依赖自定义文章类型、文章元数据、短代码或区块特有假设,必须先翻译成 EmDash 原生的内容类型与字段。

否则 Astro 层会一直在为薄弱的 schema 打补丁。

若站点仍处于内容迁移阶段,可先从 WordPress 迁移至 EmDash 指南 入手。

保留旧设计中值得保留的部分

WordPress 主题并非都要扔掉。通常更稳妥的做法是:

  • 保留信息架构
  • 保留品牌体系
  • 保留已验证的页面模式
  • 去掉遗留实现包袱

这样编辑与读者仍感到熟悉,又不必让 Astro 去模仿 PHP 时代的主题结构。

建议刻意重写的内容

迁移时,以下几类几乎都应重新设计:

  • functions.php 强绑定的部分
  • 藏在主题辅助函数里的逻辑
  • 脆弱的短代码驱动渲染
  • 依赖插件的视觉组件

这些地方往往是「忠实迁移」变成技术债搬运的重灾区。

可操作的「成功」标准

成功的主题迁移,不是保留每一处实现细节,而是:

  • 保留读者真正在乎的内容体验
  • 给编辑更清晰的内容结构
  • 让前台更易维护
  • 降低安全与运行时的耦合

这正是 Astro 与 EmDash 的强项:把展示层按现代前端项目重建,而不是把主题代码当圣物供奉。