WordPress 中文排版設定全攻略:字級、行高與 theme.json 固定規則

打開新裝 WordPress 站,內文預設字級多落在 16px 左右,行高約 1.5,看似規矩——但讀久就浮現問題。中文字密度比英文高出許多,預設值是為拉丁字母調的,套到方塊字上會出現視覺壓迫感。

區塊編輯器(Block Editor,慣稱 Gutenberg)從 6.1 版納入流體字級機制,到 2026 年的 6.9 版又重做了計算曲線。換句話說,字型排版不再是改主題 CSS 那種手工做法,而是用 theme.json 一次定死規則,全站文章自動套用。

以下從中文閱讀特性出發,談主字與副字怎麼挑,談字級階層、行高、段距如何配搭,最後示範把這套規則寫進編輯器與 theme.json,讓編輯與作者不用每篇手動調整。

為什麼中文網站不能照搬英文排版預設

英文是字母拼成的字,字寬窄、有上下凸出的字母(如 g、p、h),自然在每一行製造視覺呼吸點。中文方塊字寬度幾乎一致,筆畫密度高,整段排下來像一面磚牆。

這也是為什麼直接套英文主題預設的 1.5 倍行高,中文讀起來會悶。台灣設計圈共識落在 1.7 至 1.9 倍,正文字級 17 至 18 像素,視螢幕與字型而定。思源黑體(Noto Sans TC)這類常見免費字型,字面本身偏大,預設行高又被原廠設高,主題若未覆寫,標題之間會空到讓人以為斷章。

另一個常被忽視的點是字重對比。英文字型動輒七、八個字重,思源黑體也有 ExtraLight 至 Heavy 七階,但網頁通常只挑 2 至 3 個字重以控制檔案大小。一篇文章的主標、副標、內文若只用 Regular 一個字重,等於放棄排版層級的最強訊號。

主字與副字怎麼挑才不互打

中文網站字型策略多半是「中文主字+拉丁副字」雙軌制。中文字型負責方塊字,副字負責穿插在內文裡的英文單字、數字、代號。兩者分開挑,才能各自發揮。

中文主字優先考慮可讀字面與授權

挑中文主字時,先看授權再看可讀性。商業站台要避開只限個人使用的字型,否則改版麻煩。思源黑體走 SIL 開放授權,台灣本土的「台北黑體」「俊羽源黑體」「源樣明體」也都可商用,是預設首選。

可讀性判斷很直觀——把同一段文字鋪在實際版面上,瞇眼看是否還能辨認字形。字面太緊或筆畫過細,在亞洲螢幕標準觀看距離下會糊掉。思源黑體 Regular 在 16 至 18 像素表現穩定,更細的 Light 字重則慎用於長段落。

拉丁副字要與中文字面高度匹配

副字常見選擇是 Inter、Source Sans、Roboto 這類無襯線字型。挑選時要看 x-height(小寫字母高度)是否與中文字面相當——差太多會讓內文英文字看起來忽大忽小,像貼上去的。

操作上把副字寫在 CSS 字型堆疊前面、中文字型寫後面,瀏覽器先用副字渲染拉丁字母,遇中文自動 fallback。寫法如 font-family: "Inter", "Noto Sans TC", sans-serif,英文採用 Inter 較窄字寬,中文維持思源方正,兩者並陳不互搶。

標題字考慮反差但不要太花

標題與內文用同一字型族也行,靠字重與字級拉開層級,這是日系與北歐排版常見做法。要做更強反差,可在標題換成襯線體(如 Noto Serif TC、源樣明體)與黑體對照,但限定主標與大節,內文一律回黑體,避免一頁出現三種以上字型。

字級階層用模組化比例而不是隨手填數字

「H1 給 32、H2 給 24、H3 給 20」這種拍腦袋的做法,會讓階層視覺差距忽大忽小。穩妥作法是用模組化比例(Modular Scale)。

選一個基準字級(多半是內文 16 或 18 像素),再選一個比例係數(常見 1.2、1.25、1.333),把每一階用係數乘出來。內文 16px、係數 1.25 的話,H3 是 20px,H2 是 25px,H1 是 31.25px,往上是 39px,算出數字四捨五入到整數。

比例係數 名稱 適合場景
1.125 大二度 階層差距細微,適合資訊密度高的工具站、後台
1.200 小三度 中性選擇,適合部落格、企業官網
1.250 完全四度 對比鮮明,適合內容導向、長文閱讀的網站
1.333 完全五度 反差強烈,適合著陸頁、品牌形象站
1.500 完全五度 大幅反差,標題占版比高,慎用於內文站

選好比例後一路套到 H1 至 H6 與輔助字級(標籤、註腳、按鈕文字),整個系統就有共同數學基礎,視覺自然和諧。內容導向部落格用 1.25 是穩妥起點,層級不夠分明再升到 1.333,不要在不同階層用不同係數拼湊。

行高、段距、字距三個容易被低估的設定

字級調好,行高、段距、字距沒跟著校,整篇還是讀起來累。這三項數值與英文預設差距最大,是中文排版必修課。

  • 行高 1.7 至 1.9 倍:內文段落用此區間,每一行有充分空間;標題行高要收緊到 1.2 至 1.35 倍,避免兩行標題斷開
  • 段距等於 1 行高:段與段間留出與一行文字相當的空白,視覺節奏才穩;常見錯誤只留半行,段落黏一起
  • 字距 0 至 0.02em:中文不需明顯字距;輕微正字距(0.02em 左右)讓密集筆畫透氣,超 0.05em 反讓段落像散沙
  • 段落最大寬度 32 至 38 個中文字:超過讀者眼球在行末需長距回掃,視線易跳行;換算約 600 至 720 像素,比英文建議短

這四個值互相關聯,行高放寬段距就要對應加大,否則段落間層級會消失。先定行高,再用「段距等於 1 行高」推段距,比較不會跑掉。

用 theme.json 把規則固定下來

前述所有數值,若靠區塊手動調,作者一多就會走樣。WordPress 6.0 以後的區塊主題把字型設定全集中在 theme.json,是現在最該掌握的工具。

settings.typography 開啟流體字級

theme.json 根層的 settings.typography 物件下,把 fluidTypographyfluid 設為 true,WordPress 就用 CSS clamp() 自動生成隨螢幕寬度縮放的字級。預設行為是各字級在最小視窗用最小值、最大視窗用最大值,中間線性插值。

WordPress 6.9 把流體字級的插值演算法換成更線性的曲線,視覺縮放比舊版的 0.852 倍平滑很多。主題若還停在 6.5 以前的演算法,建議升上去再校字級,否則手機與桌機視覺落差會比預期大。

settings.typography.fontSizes 註冊字級階層

fontSizes 陣列裡定義每一階,包含 slug(識別碼)、name(編輯器顯示名稱)、size(預設值)、fluid(流體最小最大值)。典型內容站台會註冊 small、medium、large、x-large、xx-large 五階,對應模組化比例算出的數值。

每階的 fluid 子物件可分別指定 minmax。例如內文預設 18px、流體區間 16 至 20px,標題 H2 預設 28px、流體區間 24 至 36px,手機讀者拿到的字級不會太小,桌機讀者也不被巨大標題壓迫。不填 fluid 的字級,6.9 版會依全域設定自動補區間,但建議手動標清楚比較好維護。

styles.typography 套用全域樣式

fontSizes 註冊的是可選清單,要實際綁到內文與標題,得在 styles.typographystyles.elements.h1h6 裡指定 fontSizelineHeightfontFamily

行高在這用無單位數值寫(如 1.8),不要寫 28px,否則字級流體縮放時行高不跟著動。中文字距用 letterSpacing: "0.02em" 補透氣感即可。styles.spacing.blockGap 控制段與段間距離,記得校到約等於 1 行高的數值。

settings.typography.fontFamilies 統一字型來源

把中文主字與拉丁副字寫進 fontFamilies 陣列,每筆指定 fontFamily(CSS 字型堆疊)、nameslug。需從 Google Fonts 或自架字型載入的,搭配 fontFace 子陣列宣告 src 來源、字重、字風。

Google Fonts 在歐盟與部分隱私法規下不建議直連,務實做法是把字型檔下載到主機本地,再用 fontFace.src 指到本地路徑,讀者載入時不會把 IP 傳到第三方。思源黑體因檔案龐大(單字重動輒幾 MB),通常只載 Regular 與 Bold 兩個字重,並用 font-display: swap 讓內容先以 fallback 字型顯示。

區塊編輯器端怎麼讓作者不能亂改

設定好 theme.json 後,下一步是壓制編輯器內的自由度。預設下每個區塊都能個別調字級、字色、字重,作者一多就出現五花八門的版型。

簡單做法是在 settings.typographycustomFontSizefontStylefontWeightletterSpacinglineHeighttextDecoration 全設為 false,編輯器對應控件就消失。作者只能從預先註冊的 fontSizes 清單挑值,不會出現有人填 19px、有人填 21px 的混亂。

要再嚴格,可在 settings.typography.fontFamilies 只留一兩組,作者連字型族都不能換。標題層級則靠網站編輯器(Site Editor)的範本部件鎖死,文章區塊範本(Block Pattern)預先寫好結構,作者新增文章時直接套用,把每篇骨架統一。

這套做法的取捨在於彈性。個人部落格、作者只有自己,留彈性沒問題;多人協作或交給客戶接手的站,越早把規則寫死越省事,後期才不用一篇篇手動修。把 theme.json 當排版設定檔,把編輯器當填空題介面,作者只負責填字、不負責調版,全站閱讀體驗才會穩定。

相關文章
標籤: theme.json, Gutenberg, 中文排版, 字型設定, 區塊主題