將 WordPress 主題移植到 Astro 與 EmDash

以實務角度看待主題遷移:把 WordPress 主題當成前端與內容模型轉譯專案,而非一對一程式碼轉換。

將 WordPress 主題移植到 EmDash,不應從尋找一對一模板對應開始。

這種做法通常會帶入過多舊有耦合。WordPress 主題常把呈現、CMS 假設、輔助邏輯與副作用混在一起——在歷史上或許合理,但在現代前端堆疊裡會變得彆扭。

較好的做法是先把「主題實際在做什麼」分開來看。

EmDash 後台與前台介面

從主題的真正職責開始

在撰寫任何 Astro 程式碼之前,先用白話盤點現有主題。

辨識:

  • 頁面類型
  • 共用版型
  • 導覽模式
  • 彙整(archive)行為
  • 可重複使用的 UI 元件
  • 主題專屬的資料需求

這會形成一張地圖:哪些必須重建、哪些可以簡化。

轉譯「行為」,不是轉譯「檔案」

WordPress 主題檔案並非 EmDash 裡有意義的單位。有意義的單位是「呈現出來的體驗」。

在 Astro 與 EmDash 中,典型主題會變成:

  • 各頁面類型的路由
  • 共用結構的版型(layouts)
  • 可重複 UI 的元件(components)
  • 視覺系統決策的樣式
  • 主題所依賴內容模型的 schema 定義

這比傳統「把更多邏輯塞進主題直到能用」健康得多。

在追逐視覺對等之前,先重建內容模型

當團隊在尚未理解目標內容結構前,就試圖保留舊 HTML 輸出時,主題遷移往往失敗。

若 WordPress 主題依賴自訂文章類型、文章 meta、短碼或區塊專屬假設,這些都必須先轉成 EmDash 原生的內容類型與欄位。

否則 Astro 層會一直在補救薄弱的 schema。

若網站仍處於內容轉移階段,請先從 WordPress 遷移至 EmDash 指南 著手。

保留舊設計中值得留的部分

WordPress 主題裡並非一切都要丟棄。常見正確做法是:

  • 保留資訊架構
  • 保留品牌系統
  • 保留已驗證的頁面模式
  • 拿掉舊實作包袱

這樣編輯者與讀者仍會感到熟悉,又不必強迫 Astro 去模仿 PHP 時代的主題結構。

應刻意重寫的部分

移植時,下列區塊幾乎都應重新設計:

  • 任何與 functions.php 綁在一起的東西
  • 藏在主題輔助函式裡的邏輯
  • 脆弱的短碼驅動呈現
  • 依賴外掛的視覺元件

這些正是「忠實遷移」常變成「技術債轉移」的地方。

務實的成功標準

成功的主題移植,不是保留每一個實作細節,而是:

  • 保留讀者在乎的內容體驗
  • 給編輯者更清楚的結構
  • 讓前台更易維護
  • 降低安全性與執行期耦合

這正是 Astro 與 EmDash 的強項:你可以像現代前端專案一樣重建呈現層,而不必把主題程式碼當成不可侵犯的聖物。