終結滑鼠手! WP-CLI 神兵利器,讓你的 WordPress 管理效率原地起飛!
☰ 目錄 table-of-contents.md
WP-CLI 是什麼,為什麼值得學?
WP-CLI 是 WordPress 官方的命令列工具,本質是把整個後台搬進終端機:更新全部外掛、搬站換網址、停用故障外掛,通通濃縮成一行指令。它還能做到圖形介面辦不到的事——後台完全進不去時照樣搶救網站、在資料庫層級正確替換序列化資料。這篇帶你從安裝到日常工作流,徹底終結滑鼠手。
如果你管理的不只一個 WordPress 網站,或經常處理搬站、批次維護、緊急救援,學會 WP-CLI 的投資報酬率非常高。這篇文章會帶你從「為什麼用」「怎麼裝」到「實戰常用指令」走一遍,並解釋每個關鍵指令背後的原理,讓你不只是複製貼上,而是真正知道自己在做什麼。
為什麼資深工程師都改用 WP-CLI?
圖形介面(GUI)直觀、適合偶爾操作,但碰到大量、重複或精密的任務時效率極低。WP-CLI 的核心優勢有四個:
- 速度與效率:一行指令取代數十次點擊。例如一次更新所有外掛,只要
wp plugin update --all。 - 自動化與批次處理:WP-CLI 指令可以寫進腳本(Script),交給排程自動執行,例如凌晨自動更新外掛、清除快取。指令是純文字,天生適合自動化。
- 網站救援:當某個外掛或主題導致「死亡白畫面」(White Screen of Death)、連後台都進不去時,你可以透過 SSH 用指令強制停用它,讓網站起死回生。這是 GUI 在「進不去後台」的前提下根本辦不到的。
- 精準的資料庫操作:搬站最怕網址沒換乾淨。WP-CLI 的
search-replace能正確處理 PHP 序列化資料,這是直接在 phpMyAdmin 用 SQL 取代做不到的。
簡單說,學會 WP-CLI 是從「WordPress 使用者」晉升為「WordPress 管理者/開發者」的關鍵一步:把時間從無盡的點擊中省下來,花在更有價值的事情上。
為什麼 search-replace 一定要用 WP-CLI,不能直接下 SQL?
這點值得單獨說明,因為它是最容易踩雷的地方。WordPress 會把許多設定(外掛選項、佈景主題設定、Widget 資料等)以 PHP 的「序列化字串」(serialized data)存進資料庫。序列化字串裡會記錄每段文字的「長度」,格式類似 s:23:"http://dev.example.com";,前面的 23 就是該字串的字元數。
如果你直接用 SQL 的 REPLACE() 把網址換成更長或更短的字串,文字內容變了、但前面記錄的長度數字沒跟著改,序列化結構就壞掉了,輕則某些設定讀不出來,重則外掛或佈景主題報錯。WP-CLI 的 search-replace 會先把序列化資料解開、替換後再重新計算長度寫回,因此能安全處理。這就是為什麼搬站務必走 WP-CLI,而不是手動下 SQL。
開始前要準備什麼?
WP-CLI 是在伺服器上執行的工具,所以動手前有兩個基礎門檻:
- SSH 存取權限:你需要透過 SSH(Secure Shell)連線到主機才能執行指令。多數提供 SSH 的虛擬主機商都支援;若你的主機完全沒有 SSH,可能要考慮升級方案或更換主機。
- 基本命令列知識:至少要會用
cd切換目錄、ls查看檔案列表。完全陌生的話,花十來分鐘看一份基礎教學就足以上手。
另外提醒一個觀念:WP-CLI 的指令大多需要在「WordPress 安裝目錄裡」執行(也就是能看到 wp-config.php 的那層),因為它要讀取網站設定才知道要操作哪個資料庫。連上 SSH 後,先 cd 到你的網站根目錄再下指令。
如何安裝 WP-CLI?三步驟搞定
安裝流程很簡單,跟著以下三步就能在伺服器上擁有這個工具。
步驟一:下載 wp-cli.phar 檔案
透過 SSH 登入主機後,執行:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
這會從 WP-CLI 官方 GitHub 儲存庫下載最新的穩定版本。.phar 是 PHP 的封裝執行檔格式,等於把整個工具打包成單一檔案。
步驟二:賦予執行權限並移動到系統路徑
下載下來的只是一個檔案,我們要讓它「可被執行」,並放到系統隨時找得到的位置,這樣才能在任何目錄直接打 wp。
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
第一行 chmod +x 賦予檔案執行權限;第二行 sudo mv 用系統管理員權限把它移到 /usr/local/bin 並改名為 wp。之所以選這個目錄,是因為它通常已經在系統的 PATH 環境變數裡,放進去後系統就會把 wp 當成全域指令來找。
步驟三:驗證安裝
最後輸入:
wp --info
如果看到 PHP、MySQL 版本以及 WP-CLI 自身版本等資訊,代表安裝成功,你已經打開新世界的大門。
WP-CLI 實戰:從日常管理到緊急救援
光說不練假把戲。以下是最常用、最實用的指令,依使用情境分組,讓你直接對照需求查找。
核心、外掛與佈景主題管理
忘掉在後台一個一個點擊的日子吧:
- 檢查 WordPress 核心版本:
wp core version - 更新 WordPress 核心:
wp core update - 列出所有外掛及其狀態:
wp plugin list - 安裝並啟用一個外掛(例如 WooCommerce):
wp plugin install woocommerce --activate - 一次更新所有外掛:
wp plugin update --all - 停用某個外掛(網站掛掉時的救星):
wp plugin deactivate akismet - 刪除某個佈景主題:
wp theme delete twentytwentythree
當你要維護數十個網站時,把這些指令寫成腳本批次跑,幾秒鐘就能完成所有網站的例行更新。
資料庫操作的關鍵指令:search-replace
這是 WP-CLI 最不可或缺的功能。要把網域從 http://dev.example.com 搬到 https://example.com 時,先用「模擬執行」確認影響範圍:
wp search-replace 'http://dev.example.com' 'https://example.com' --dry-run
--dry-run 參數至關重要:指令會完整跑一遍,告訴你會在哪些資料表、找到多少筆需要替換的資料,但不會真的寫入資料庫。這讓你能先確認替換範圍正確,避免誤改。建議養成「任何 search-replace 一律先 dry-run」的習慣。
確認無誤後,拿掉 --dry-run 正式執行:
wp search-replace 'http://dev.example.com' 'https://example.com' --skip-columns=guid
這裡多了 --skip-columns=guid。guid 是 posts 資料表裡每篇內容的唯一識別字串,雖然長得像網址,但它的設計用途是「永久不變的識別碼」,RSS 閱讀器等工具會用它來判斷文章是否為同一篇。一旦更動,部分訂閱者可能把舊文章誤判成新文章重新收一次。因此官方最佳實踐是搬站時跳過 guid 欄位,只換真正會顯示給使用者的網址。
實務提醒:執行任何寫入資料庫的操作前,務必先完整備份資料庫。即使 WP-CLI 已經幫你處理好序列化與 guid 的細節,備份仍是你最後的安全網。
使用者管理
客戶忘記密碼,或你自己被鎖在網站外面?小事一樁:
- 列出所有使用者:
wp user list - 重設管理員密碼(假設使用者名稱是 admin):
wp user update admin --user_pass=YourNewSecurePassword - 建立一個新的管理員帳號:
wp user create newadmin newadmin@example.com --role=administrator
再也不用進資料庫手動改那串加密過的密碼了——WP-CLI 會幫你用正確的方式重新雜湊密碼寫回。
效能與維護
日常維護工作也能交給 WP-CLI:
- 清除所有暫存(Transients):外掛的暫存有時會出問題,這指令可強制清除。
wp transient delete --all - 重新產生媒體庫縮圖:換了佈景主題、圖片尺寸不同時,需要重新產生縮圖。
wp media regenerate --yes - 檢查並執行到期的排程工作:WordPress 的 Cron Job 有時會卡住,可用指令手動觸發到期任務。
wp cron event run --due-now
關於 WP-Cron 為什麼會「卡住」、以及如何改用系統 Cron 來穩定觸發排程,這篇站內文章有更完整的說明:搞定 WP-Cron,告別「錯過排程」惡夢。用指令來檢查與觸發排程,會比在後台瞎猜清晰許多。
結語:別再用滑鼠了,讓指令為你工作
今天我們只是淺嚐 WP-CLI 的皮毛。它還有大量指令與參數,涵蓋內容匯入匯出、多站點網路(Multisite)管理,以及與 WooCommerce、ACF 等知名外掛的整合。它學習門檻不高,投資報酬率卻極高。
無論你是開發者、網站管理者還是進階使用者,只要對 WordPress 認真,都值得把 WP-CLI 加進工具箱。它不只省下寶貴時間,更能在關鍵時刻拯救你的網站。現在就動手安裝,開始你的命令列大師之路吧!
需要更專業的 WordPress 技術支援嗎?
覺得今天的內容太硬核,或你的網站遇到更棘手的問題?浪花科技的團隊擁有多年 WordPress 開發與維護經驗,無論是客製化開發、效能調校還是緊急救援,都能提供專業的解決方案。別再自己埋頭苦幹,歡迎與我們聯繫,讓專業的來。
延伸閱讀
常見問題
WP-CLI 是什麼?學它有什麼好處?
搬站換網址為什麼一定要用 WP-CLI 的 search-replace,而不能直接下 SQL?
怎麼安裝 WP-CLI?
用 WP-CLI 做 search-replace 時 --dry-run 參數有什麼用?
WP-CLI 搬站時為什麼要加上 --skip-columns=guid?
訂閱免費電子報
把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。