Enter your email address below and subscribe to our newsletter

WordPress 更換網址使用 WP-CLI 指令:從本地開發到正式上線的完整教學

文章分享:

在開發 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 路徑

更換網址後建議刷新固定網址設定:

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 自動化部署中使用。

文章分享
James Tsai
James Tsai
文章: 12

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *