在多語網站中,不同語言通常需要不同字體來確保最佳的閱讀體驗。
例如:
- 繁體中文:建議使用「Noto Sans TC」、「Microsoft JhengHei」等字體
- 日文:建議使用「Noto Sans JP」、「Yu Gothic」等字體
- 英文:建議使用「Roboto」、「Helvetica Neue」等字體
如果你使用 Elementor Pro 建站,會遇到一個問題:Elementor 會自動載入它的「全域字型」,導致你自己設定的 CSS 被覆蓋。
這篇文章教你如何 停用 Elementor 預設字型,並搭配 WPML 當前語系 控制字體,達到全站自動切換。
1. 停用 Elementor 預設字體
後台設定關閉
- 進入 Elementor → 設定 → 進階 (Advanced)
- ✅ 勾選 「停用預設字型 (Disable Default Fonts)」
這樣 Elementor 就不會在前端額外輸出字型 CSS。
清空全域字型
- 進入 Elementor → 網站設定 (Site Settings) → 全域字型 (Global Fonts)
- 將所有字型改成 Default 或清空,避免 Elementor 自動覆蓋。
2. 使用 WPML 當前語系控制字體
WPML 會在 WordPress 定義一個常數 ICL_LANGUAGE_CODE
,代表目前的語系,例如:
zh-hant
→ 繁體中文ja
→ 日文en
→ 英文
我們可以利用這個變數,在 <head>
中輸出對應語系的 CSS。
程式碼範例
將以下程式碼加入 functions.php
或使用 Code Snippets 外掛:
/**
* 依 WPML 當前語系,在 <head> 輸出字體控制
*/
add_action('wp_head', function () {
if (!defined('ICL_LANGUAGE_CODE')) {
return;
}
$lang = ICL_LANGUAGE_CODE; // zh-hant, ja, en
echo '<style>';
if ($lang === 'zh-hant') {
// 繁體中文
echo 'body { font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", Arial, sans-serif; }';
} elseif ($lang === 'ja') {
// 日文
echo 'body { font-family: "Noto Sans JP", "Hiragino Kaku Gothic Pro", "Yu Gothic", system-ui, sans-serif; }';
} elseif ($lang === 'en') {
// 英文
echo 'body { font-family: "Roboto", "Helvetica Neue", Arial, sans-serif; }';
}
echo '</style>';
});
3. 成果效果
當網站切換語言時,WPML 會自動切換 ICL_LANGUAGE_CODE
,
上方程式碼就會輸出對應的字體設定,例如:
- 網站語系為 繁體中文 (zh-hant) → 套用 Noto Sans TC
- 網站語系為 日文 (ja) → 套用 Noto Sans JP
- 網站語系為 英文 (en) → 套用 Roboto
不需要再逐頁修改 Elementor 元件字型,維護更省力。
4. 總結
這個方法的重點是:
- 停用 Elementor 預設字體(避免被覆蓋)
- 利用 WPML 語系判斷,在
<head>
動態輸出字體 CSS - 一次設定,全站生效
這樣,你的多語網站就能針對不同語言自動使用最佳字體,提升使用者閱讀體驗,也讓網站維護更加簡單。