在開發 WordPress 專案時,開發者通常會在本地以 http://localhost 或自訂子目錄(例如 http://localhost/wp)進行網站製作。然而,當網站準備正式上線時,就需要將 WordPress 網址切換為真正的網域,例如 https://example.com。
網址切換後,WordPress 的前台與後台才能正常運作,包含登入頁面、圖片路徑、靜態資源、API 呼叫等都會依賴這些正確的網址設定。若沒有更新,網站可能會出現下列問題:
- 後台無法登入或跳回舊網址
- 圖片與 CSS 仍指向 localhost
- 網站頁面載入混用 HTTP / HTTPS
- 前台樣式跑版或部分功能失效
而 WP-CLI 是最快速、最安全、也最不容易出錯的方式——尤其搭配 Nginx Proxy、Apache、Docker、VM、或 HestiaCP等環境時,非常適合工程師使用。
為什麼需要更換 WordPress 網址?
最常見的情境包括:
1. 在本地端 (localhost) 開發,準備正式上線
開發流程經常是:
http://localhost → https://example.com
此時需要更新 WordPress 內部的正式網站網址(home / siteurl)。
2. 測試站搬遷到正式站
例如:
https://staging.example.com → https://example.com
3. 網域變更或品牌改名
從:
https://oldbrand.com → https://newbrand.com
4. HTTP 升級到 HTTPS
為避免混合內容(Mixed Content),網址必須完整更新:
http://example.com → https://example.com
無論上述哪一種情境,都可以透過 WP-CLI 快速完成。
使用 WP-CLI 更新 WordPress 網址
使用者只需進入 WordPress 網站根目錄,執行以下指令:
wp option update siteurl "https://newDomain.com"
wp option update home "https://newDomain.com"
這兩個欄位是 WordPress 的核心設定:
- siteurl:負責 WordPress 核心路徑(包含後台登入頁面)
- home:前台顯示的網站 URL
一般情況兩者會相同。
進階:更新文章內容與圖片 URL(強烈建議)
如果你的網站在本地端就已加入圖片、背景、模板內容,那麼內文可能會寫死舊網址。
這時應使用:
wp search-replace "http://localhost" "https://newDomain.com" --skip-columns=guid
選項說明:
- search-replace:搜尋舊網址並更新為新網址
- –skip-columns=guid:避免修改 guid 欄位(RSS 與文章唯一識別)
此指令會修正:
- 文章內文 URL
- Gutenberg 圖片區塊
- 主題或 Page Builder 儲存的 JSON 設定
- 內嵌的 CSS / JS 路徑
重建固定網址(Permalink)
更換網址後建議刷新固定網址設定:
wp rewrite flush --hard
避免遇到 404 或重寫規則失效的情況。
總結:最快速、最正確的網址切換方式
完整流程如下:
wp option update siteurl "https://newDomain.com"
wp option update home "https://newDomain.com"
wp search-replace "http://localhost" "https://newDomain.com" --skip-columns=guid
wp rewrite flush --hard
這套流程可適用於:
- 本地開發 → 正式網域
- 測試站 → 正式站
- 任何更換網域情境
- HTTP → HTTPS 升級
WP-CLI 的方式不僅速度快、可重複使用,也特別適合工程師在 VPS、Docker、Incus/LXD、HestiaCP、或 CI 自動化部署中使用。

