創作邦 / 內部教育訓練

Figma → WordPress
用 Claude Code 一句話切版用 MCP 串接設計稿與後台
10 分鐘完成一個 section

Workshop 3 hours 13 attendees 2026.04
講師 / Kevin Kuo 創作邦 凱文設計
WHY / 為什麼來

這場為什麼重要

傳統切版:設計師交稿 → 工程師看圖 → 手刻 HTML → 部署 → 來回對 Figma → 改 → 再對。 一個 landing page 通常 2 到 5 個工作天

用 Claude Code + MCP:5 個 section 一個下午跑完,包含 Carousel、滾動動畫、漸層、響應式。

01

速度

省掉雙手切版時間,把精力放在設計判斷。

02

精準

Claude 直接讀 Figma node 樹,不靠眼睛抓位置。

03

可複製

這個 pipeline 在客戶案直接套用,工作流升一個維度。

GOAL / 學完能做什麼

3 小時後,你能獨立做這件事

  • 用 Claude Code 連到任意 WordPress 站
  • 抓 Figma 設計稿並理解結構
  • 把 Figma 翻譯成 HTML widget JSON
  • 透過 MCP 一鍵部署到 WP 頁面
  • 用 headless Chrome 做視覺對比驗證
  • 遇到 cache / 權限 / API 問題知道怎麼除錯
  • 把這個 pipeline 套到客戶案上
DELIVERABLE

屬於你的
練習頁

一個你親手切完、跑得動、可以分享連結給人看的真實頁面。

AGENDA / 工作坊流程 (1/2)

3 小時時間表 — 上半

00:00 — 00:20

架構說明
+ Demo

老師現場做一個 hero 給你看,10 分鐘從零到部署。

00:20 — 00:40

環境設定

裝 Claude Code MCP、設好 application password、第一次連線。

00:40 — 01:30

第一次切版

抓 Figma → 翻譯 → 部署 → 驗證 → 迭代,跑完整個流程一次。

⏭ 下一頁:下半段 — 自由發揮、分享、線上實戰差異。

AGENDA / 工作坊流程 (2/2)

3 小時時間表 — 下半

01:30 — 02:30

自由發揮

挑你想做的 section 練習,老師現場 1:1 解雷。

02:30 — 02:50

分享 + 點評

每人秀一下成果,老師補充改進方向。

02:50 — 03:00

線上實戰差異

客戶站跟今天測試站差在哪,回去怎麼套用。

✦ 主軸:3 小時內每人都產出一個能上線、能分享連結給人看的頁面。

PIPELINE / 整體架構

資料怎麼流動

理解這張圖你就懂全部了。

Figma 設計稿
node 樹 / 字 / 圖 / 位置
Figma MCP 抓 frame 結構
回 JSON
Claude Code 翻譯成
HTML + CSS
Elementor MCP 把 JSON
寫進 WP
WordPress 頁面上線

驗證迴圈:部署 → 截圖 → 對比 Figma → 改 HTML → 再部署。
整個過程 你不用碰 WP 後台

STEP 0 / 事前準備

工作坊開始前要備好

必裝

  • Claude Code(最新版)
  • Node.js 18 以上
  • Python 3.10 以上
  • Chrome(驗證截圖用)

老師會給

  • trainee 帳號(trainee01 ~ 13)
  • Application Password
  • 專屬練習頁 ID
  • Figma 設計稿連結

⚠ 提醒:整組密碼含空格別漏複製

STEP 1 / 設定 Claude Code MCP

把 Elementor MCP 加進設定檔

編輯 ~/.claude/settings.json,加這段:

{
  "mcpServers": {
    "elementor-mcp": {
      "command": "npx",
      "args": ["-y", "elementor-mcp"],
      "env": {
        "WP_URL": "https://dbc.zeabur.app",
        "WP_APP_USER": "trainee01",
        "WP_APP_PASSWORD": "xxxx xxxx xxxx ..."
      } } } }

儲存後 完全關掉 Claude Code 再重開(reload 沒用)。

STEP 2 / 第一次連線測試

驗證 MCP 通了

兩階段確認:先看 MCP 有沒有掛上,再實測能不能讀寫。

METHOD 1

列出已載入的 MCP

claude mcp list

列表裡應看到 elementor-mcp
✓ Connected

METHOD 2

實測讀取功能

請用 elementor mcp 抓
page 9 的內容

Claude 應回頁面標題 / slug / status

✗ 失敗:多半是 application password 空格被吃掉設定檔沒重新載入(Claude Code 要完全關閉重開)。

STEP 3 / Hello World

第一次部署

直接複製貼給 Claude:

用 elementor mcp 把 page 9 的內容改成:

<div style="padding:80px;background:#1a1816;color:#f4ead5;
            text-align:center;font-family:'Noto Serif TC';">
  <h1 style="font-size:48px;letter-spacing:8px;">Hello Workshop</h1>
  <p style="margin-top:20px;">我的第一個 MCP 部署</p>
</div>

部署完開 https://dbc.zeabur.app/trainee-XX/ 看結果。

✦ 完全沒碰 WP 後台。Claude 直接寫進去了。

STEP 4 / 從 Figma 抓設計稿

讓 Claude 看懂設計

給 Claude 一個 Figma frame URL:

抓這個 Figma frame 的結構:
https://figma.com/design/XXXXX/YYY?node-id=1-14

把每個元素的位置、尺寸、文字、字型都列給我看

Claude 會回你一棵 node 樹,內含:

  • 所有圖片資產 (image fills + reference)
  • 文字內容、字型、字級、letter-spacing、行高
  • 顏色(含 alpha)、漸層、shadow、絕對定位
STEP 5 / 翻譯成 HTML

兩條路:對話 vs Builder

A

純對話控制

叫 Claude 把這個 frame 切成 HTML,部署到 page 9

  • 適合單一 section 快速做
  • 每次調整都靠對話
B

Python Builder

複製 starter-builder.py,改 HTML 後跑指令產 JSON

  • 適合多 section / 複雜頁面
  • 結構版控 friendly

推薦:第一次用 A 上手,做超過 2 個 section 後切到 B。

STEP 6 / 部署到 WP

一行指令上線

# 純對話路線
把這段 HTML 部署到 page 9

# Builder 路線
把 /tmp/my-page.json 部署到 page 9

Claude 會呼叫 update_page_from_file,幾秒內頁面就更新。

📌 重點:WP 可能 cache 舊版,加 ?fresh=t 強制重載。

STEP 7 / 視覺驗證 + 迭代

交給 Claude 對版面

這是工作坊最常用的咒語:

截圖 https://dbc.zeabur.app/trainee-01/
對照 Figma 原稿,列出三個最明顯的差異

Claude 會:

  • 用 headless Chrome 拍 1920px 寬截圖
  • 跟你的 Figma 原稿做 side-by-side
  • 列出位置 / 顏色 / 尺寸 / 缺漏的差異

✦ 改 → 部署 → 截圖 → 比對。每輪 30 秒,2-3 輪就吻合。

PITFALLS / 踩雷 Top 5 (1/2)

老師打過的雷

PITFALL 01

部署成功但頁面沒變 / Elementor cache 沒清

解:URL 加 ?fresh=<timestamp>,或部署成 draft 再切 publish。

PITFALL 02

Application Password 401 Unauthorized / 空格被吃掉

解:重開 WP Profile → 重建一組 → 整組複製含空格。

PITFALL 03

widget 的 css_classes 沒 render / Elementor 不輸出 widget 級 class

解:CSS 改用 .elementor-element-{widget_id} selector。

PITFALLS / 踩雷 Top 5 (2/2)

老師打過的雷

PITFALL 04

CSS content:"\\"; 壞掉 / WP stripslashes 咬掉一個反斜線

解:改用 unicode escape content:"\005C" 或乾脆畫 SVG。

PITFALL 05

絕對定位跑版 / 子元素跳到下個 section

解:父容器要 position:relative,跟 Elementor 對抗超過 3 個 !important 就改用 HTML widget。

✦ 卡住就翻 CHEATSHEET.md,13 條全紀錄。

PRO TIP / 給專案上下文

寫一份 CLAUDE.md

在專案資料夾根目錄建一個 CLAUDE.md,Claude Code 自動讀:

# 我的工作坊專案

## WP 連線
- 站: https://dbc.zeabur.app
- 我的 page ID: 9

## Figma
- FileKey: dces5AhI9SgdCgIlo7Ffa4
- 要切的 frame: 1:14 Hero、1:321 VIP

## 規則
- 部署後一定截圖驗證
- 用 1920 寬度對比

✦ 不用每次 prompt 都重講背景,省一半互動時間。

PRO TIP / Python Builder

大型頁面用 Builder

# 複製範本 + 編輯 PAGE_ID + 寫 HTML
cp starter-builder.py my-build.py
vim my-build.py

# 產 JSON
python3 my-build.py
# > OUT /tmp/my-page.json (12345 bytes)

# 叫 Claude 部署
請部署 /tmp/my-page.json 到 page 9

優勢:

  • 結構放 git,跨 session 不會弄丟
  • 大頁面改改就重跑,不用重講
REAL WORLD / 套到客戶站

這個 pipeline 怎麼用在客戶案

MCP 串接 90% 一樣。差在「部署前後的配套」:

面向 今天的測試站 線上客戶站
改錯回滾 隨便改 先備份原 JSON
部署 status 直接 publish draft 預覽 → publish
清快取 ?fresh=t WP CLI / Elementor 後台
REST API 完全開放 Wordfence 可能擋

✦ 4 條配套規則記起來,今天學的全部能套用。

準備好了嗎

打開 Claude Code,把 onboarding 表打開放手邊。

你的第一個指令會是:

請用 elementor mcp 抓 page 9 的內容

開始切版

有問題舉手 玩壞了無所謂 一週後 reset