滑鼠點到手抽筋?終極 WP-CLI 指令實戰大全,一鍵搞定部署、快取、更新!

2025/09/15 | WP 開發技巧

滑鼠點到手抽筋?終極 WP-CLI 指令實戰大全,一鍵搞定部署、快取、更新!

嗨,我是浪花科技的資深工程師 Eric。如果你跟我一樣,每天都在跟數不清的 WordPress 網站打交道,那你肯定懂那種感覺:滑鼠游標在後台儀表板上來回奔波,更新外掛、清快取、換網址… 一天下來,右手食指大概點擊了上萬次,簡直比跑馬拉松還累。想當年我們還在用 FTP 一個個檔案上傳,等到天荒地老,那更是惡夢一場。

幸好,我們活在一個美好的時代,有 WP-CLI 這個神兵利器。如果你還沒聽過或是不熟悉它,可以先看看我同事寫的入門介紹。今天,我們不談理論,直接上戰場。這篇文章就是要帶你深入 WP-CLI 指令實戰的核心,聚焦在每個開發者最痛的三個點:部署、清快取、更新外掛。準備好了嗎?放下你的滑鼠,打開你的終端機,讓我們一起把效率點滿!

為什麼每個 WordPress 開發者都該把 WP-CLI 當飯吃?

在我們深入指令前,讓我再囉嗦幾句。為什麼我對 WP-CLI 如此推崇?因為它徹底改變了我的工作流程。過去,管理 10 個網站可能就需要一個下午;現在,透過 WP-CLI 加上一點腳本魔法,100 個網站的日常維護可能也只需要半小時。

  • 速度與效率: 一行指令,勝過後台數十次點擊。尤其在處理大量任務時,差距是天與地。
  • 自動化潛力: WP-CLI 的指令可以寫成 shell 腳本,搭配伺服器的 Cron Job,就能實現全自動的網站備份、更新與健康檢查。一人管百站,真的不是夢。
  • 錯誤排除: 當網站因為某個外掛或主題更新而出錯,連後台都進不去時(傳說中的「死亡白畫面」),WP-CLI 就是你唯一的救贖。透過指令停用外掛,就能立刻讓網站起死回生。
  • 精準控制: 你可以對資料庫進行精細的操作,例如全站搜尋並取代特定字串,這是光靠後台介面幾乎不可能完成的任務。

總之,學會 WP-CLI 不只是學一個工具,而是提升你的開發維度。好了,說教完畢,我們來點實際的。

WP-CLI 實戰起手式:環境準備與基本功

要施展 WP-CLI 的魔法,前提是你需要有伺服器的 SSH (Secure Shell) 連線權限。這通常是高品質主機的標配。當你透過終端機成功登入主機後,可以先用以下指令確認 WP-CLI 是否已經安裝妥當:

wp --info

如果看到一堆版本資訊,恭喜你,可以開始了。如果沒有,那你得先聯絡你的主機商,或是參考官方文件自行安裝。在進入核心戰場前,我們先用幾個基本指令暖暖身,確認你是在正確的 WordPress 網站根目錄下操作:

  • wp core version:檢查 WordPress 核心版本。
  • wp plugin list:列出所有已安裝的外掛及其狀態(啟用/停用、版本)。
  • wp theme list:列出所有已安裝的主題及其狀態。

這些基本指令就像是武功的馬步,雖然簡單,卻是所有變化的基礎。

指令實戰一:告別手動更新地獄,一鍵搞定外掛與主題

網站維護最頻繁的工作之一,絕對是更新。看著後台右上角那顆紅色的更新數字,是不是有點焦慮?有了 WP-CLI,這一切都變得優雅從容。

檢查更新狀態

在動手前,先偵查敵情。用這兩個指令看看哪些東西需要更新:

# 檢查外掛更新
wp plugin status

# 檢查主題更新
wp theme status

終端機會清楚地列出哪些外掛或主題有新版本,一目了然。

一次更新所有外掛/主題

準備好體驗一鍵升級的快感了嗎?

# 一次更新所有外掛
wp plugin update --all

# 一次更新所有佈景主題
wp theme update --all

工程師囉嗦時間: `update –all` 這個指令雖然爽,但也有風險。萬一某個外掛的新版本跟你的網站不相容,可能會導致網站掛掉。所以,在生產環境(正式上線的網站)執行前,務必、千萬、一定要先備份你的網站!或是在預備環境 (Staging) 測試過再執行。

精準打擊!只更新特定外掛

如果你比較謹慎,想要一個一個來,當然也沒問題。你可以指定要更新的外掛名稱(slug):

wp plugin update akismet hello-dolly woocommerce

這樣就可以只更新你指定的這幾個外掛,控制風險。

緊急救援:啟用與停用外掛

想像一個情境:你剛更新完一個外掛,網站就直接白畫面了。後台進不去,怎麼辦?這就是 WP-CLI 大顯身手的時刻!

# 停用惹禍的外掛(例如 woocommerce)
wp plugin deactivate woocommerce

# 啟用外掛
wp plugin activate woocommerce

透過 SSH 連線進主機,一行指令就能停用外掛,讓你的網站恢復正常,這簡直是網站管理員的救命仙丹。

指令實戰二:快取清理的藝術,讓網站效能一飛沖天

「你清一下快取試試看?」這句話大概是工程師跟客戶之間最常出現的對話。每次修改完 CSS 或新增內容,快取常常會讓你看不到最新的變更。用 WP-CLI 清快取,比登入後台找按鈕快多了。

核心物件快取 (Object Cache)

不論你用的是 Redis 還是 Memcached,WordPress 內建了一個通用的物件快取指令:

wp cache flush

這個指令會告訴 WordPress:「嘿,把你所有暫存的東西都丟掉,重新抓取最新的!」這通常是最快也最直接的方式。

應對常見的快取外掛

很多時候,我們還會搭配使用頁面快取外掛 (Page Cache Plugin)。好消息是,許多主流的快取外掛都支援 WP-CLI。以下是幾個常見的例子:

  • W3 Total Cache: wp w3-total-cache flush all
  • WP Rocket: wp rocket clean
  • WP Super Cache: wp super-cache flush

工程師囉嗦時間: 每個快取外掛的指令可能不太一樣,我強烈建議你花點時間去查閱你正在使用的快取外掛的官方文件,看看它提供了哪些 WP-CLI 指令。把這些指令記下來,你會發現你的除錯效率提升了好幾個檔次。

指令實戰三:無痛網站部署與遷移的終極腳本

這部分是今天的重頭戲,也是最能體現 WP-CLI 價值的地方。傳統的網站部署或遷移(例如從測試站搬到正式站),最麻煩的就是處理資料庫裡的網址。手動改?很容易漏掉,而且還可能改壞序列化 (Serialized) 的資料。WP-CLI 的 `search-replace` 指令就是為此而生的。

關鍵第一步:資料庫的搜尋與取代

假設我們要從 `staging.roamer-tech.com` 搬家到 `roamer-tech.com`,指令如下:

# 先用 --dry-run 進行模擬,不會真的修改資料庫
wp search-replace 'staging.roamer-tech.com' 'roamer-tech.com' --dry-run

# 確認無誤後,拿掉 --dry-run,正式執行
wp search-replace 'staging.roamer-tech.com' 'roamer-tech.com' --all-tables

超級重要! `–dry-run` 參數是你的救命符!它會模擬一次搜尋取代的過程,告訴你哪些資料表的哪些欄位會被修改,但不會真的寫入資料庫。等你確認報告的內容都正確無誤後,再移除 `–dry-run` 執行真正的修改。這個習慣可以幫你避免無數次的災難。

部署腳本範例

真正的專業玩家,會把一系列的部署指令寫成一個腳本 (Shell Script)。這樣每次部署時,只需要執行一個檔案,就能自動完成所有事情。以下是一個簡單的部署腳本範例:

#!/bin/bash

# 浪花科技 - Eric 的簡易部署腳本
# 使用前請務必確認路徑與網址,並且備份!

# --- 設定變數 ---
OLD_URL='staging.roamer-tech.com'
NEW_URL='roamer-tech.com'

# --- 開始執行 ---
echo "🚀 開始部署..."

# 1. 從 Git 拉取最新程式碼 (如果你的專案有用 Git)
echo "(1/6) 正在拉取最新程式碼..."
git pull origin main

# 2. 更新 Composer 依賴 (如果你的專案有用 Composer)
echo "(2/6) 正在更新 Composer 依賴..."
composer install --no-dev --optimize-autoloader

# 3. 更新資料庫 URL
echo "(3/6) 正在更新資料庫 URL..."
wp search-replace $OLD_URL $NEW_URL --all-tables --skip-columns=guid

# 4. 更新 WordPress 核心與資料庫結構
echo "(4/6) 正在更新 WordPress 核心..."
wp core update-db

# 5. 清除所有快取
echo "(5/6) 正在清除所有快取..."
wp cache flush
wp rocket clean # 假設使用 WP Rocket

# 6. 重設固定網址結構,避免 404
echo "(6/6) 正在重設固定網址..."
wp rewrite flush

echo "✅ 部署完成!請到網站上確認一切正常。"

你可以把這段程式碼存成一個檔案,例如 `deploy.sh`,然後給它執行權限 (`chmod +x deploy.sh`)。未來每次要部署,只要執行 `./deploy.sh`,泡杯咖啡,回來就搞定了。

結語:別讓滑鼠限制了你的生產力

從簡單的外掛更新快取清理,到複雜的網站部署流程,WP-CLI 展現了它無與倫比的強大威力。它不僅僅是一個工具,更是一種高效、專業的工作哲學。剛開始可能會覺得要記很多指令很麻煩,但相信我,一旦你開始在日常工作中使用它,你會很快愛上這種「指令一切」的快感,再也回不去那個用滑鼠點點點的時代。

希望這篇實戰指南能幫助你跨出第一步。當然,WP-CLI 的功能遠不止於此,它還有管理使用者、匯入匯出內容、操作資料庫等無數強大的功能,等著你去探索。

延伸閱讀

如果你在導入 WP-CLI 的過程中遇到任何困難,或者想為你的企業打造更穩定、更自動化的 WordPress 維運流程,都歡迎與浪花科技聯繫。我們的團隊擁有豐富的實戰經驗,能為你提供最專業的解決方案。

常見問題 (FAQ)

Q1: 使用 `wp plugin update –all` 一次更新所有外掛安全嗎?會不會有風險?

A: 方便,但有風險。一次更新所有外掛的最大風險在於,如果其中一個外掛的新版本與您的 WordPress 核心、主題或其他外掛不相容,可能會導致網站功能異常甚至癱瘓(俗稱「死亡白畫面」)。因此,我強烈建議在正式上線的網站執行此指令前,務必先完整備份網站檔案與資料庫。最好的做法是在一個與正式環境一模一樣的「預備環境」(Staging) 進行更新測試,確認一切正常後,再對正式網站進行操作。

Q2: `wp search-replace` 指令中的 `–dry-run` 參數是什麼?為什麼這麼重要?

A: `–dry-run` 是一個「模擬執行」的參數,它會執行一次搜尋與取代的掃描,然後在終端機回報給你「如果真的執行,將會有多少資料表、多少筆資料會被修改」,但它並不會真正寫入或更動你的資料庫。這個參數至關重要,因為它讓你能在動手前預覽變更,檢查網址或字串是否正確,避免因為打錯字而導致無法挽回的資料庫災難。請養成習慣,每次執行 `search-replace` 前,都先加上 `–dry-run` 跑一遍!

Q3: 我的主機空間沒有提供 SSH 權限,還能使用 WP-CLI 嗎?

A: 很遺憾,基本上不行。WP-CLI 是一個命令列工具,它的運作基礎就是透過 SSH (Secure Shell) 這類型的命令列介面連線到您的主機伺服器來執行指令。如果您的主機方案(通常是比較基礎的共享主機)不提供 SSH 權限,您就無法使用 WP-CLI。如果您是一位開發者或需要頻繁管理網站,我會建議您考慮升級到提供 SSH 權限的 VPS 或更高階的主機方案,這對於提升工作效率與網站管理能力是非常值得的投資。

 
立即諮詢,索取免費1年網站保固