文派命令列介面
WordPress 管理之道無需瀏覽器,指尖流轉程式碼,掌控 WordPress 之一切。
速
執行快如閃電,無需等待,外掛更新、資料匯入。
簡
輸入極簡指令,直達核心。摒棄繁雜介面更純粹。
動
自動化腳本,批次處理。減少重複勞動隨風而去。
始
萬物之源下載 (Download)
選擇離你最近的源下載 wp-cli.phar 檔案。以下自選其一。
賦權 (Permission)
賦予檔案可執行權限,使其成為可運行的程式。
歸位 (Move)
將檔案移動到系統路徑,並重新命名為 wp。
驗證 (Verify)
確認安裝成功。
下載 (Download)
下載 wp-cli.phar 到你的專案根目錄。
設定 (Configure)
在同一目錄下建立 wp.bat 檔案。
路徑 (Path)
將該目錄添加到系統的環境變數 PATH 中。
驗證 (Verify)
打開新的命令列視窗驗證。
技
日常之修煉智
未來之演進當命令列遇上人工智慧,WP-CLI 不再只是工具,而是你的智慧助手。 透過 AI 賦能,實現自然語言控制、程式碼自動生成與智慧故障診斷。
自然語言互動
告別繁瑣參數,直接告訴它你想做什麼。
智慧程式碼生成
自動生成外掛樣板程式碼、自訂文章類型註冊程式碼。
故障自動診斷
智慧分析日誌,快速定位錯誤根源並給出修復建議。
配
運籌於帷幄透過 wp-cli.yml 設定檔案,您可以定義全域參數、註冊命令別名,甚至管理遠端網站。
全域設定
一次設定,處處生效。省去重複輸入參數的煩惱。
path: web/wp
url: http://example.com
user: admin
disabled_commands:
- db drop
- plugin install
遠端別名 (Aliases)
在本地機器上,直接操控遠端伺服器的 WordPress 網站。
@prod:
ssh: user@prod-server/var/www/html
@dev:
ssh: user@dev-server/var/www/html
深
自動化之道精通 WP-CLI 不僅僅是掌握單個命令,更在於將其融入自動化工作流。 這裡有一些進階的腳本與設定範例。
如果您管理著多個 WordPress 網站,可以編寫一個簡單的 Bash 腳本來遍歷目錄並更新所有網站。
#!/bin/bash
# 假設所有網站都在 /var/www/html/ 下
for dir in /var/www/html/*/; do
echo "Updating $dir..."
cd "$dir"
# 檢查是否是 WordPress 目錄
if wp core is-installed --allow-root; then
# 更新核心、外掛和佈景主題
wp core update --allow-root
wp plugin update --all --allow-root
wp theme update --all --allow-root
echo "Done."
else
echo "Not a WordPress install. Skipping."
fi
done
WordPress 預設的 Cron 依賴頁面存取觸發,不僅不穩定還影響效能。建議禁用它,改用系統的 Crontab。
1. 在 wp-config.php 中禁用預設 Cron:
2. 在伺服器的 crontab 中添加任務(每分鐘執行一次):
配合 Redis 或 Memcached,WP-CLI 可以幫助您管理物件快取,極大提升動態頁面載入速度。
在 WordPress 多站點網路中,逐個站點執行命令非常繁瑣。結合 xargs 可以實現一行程式碼管理整個網路。
使用 profile 擴充包,您可以深入分析 WordPress 啟動過程中的效能瓶頸,精確到毫秒級的鉤子 (Hook) 執行時間。
將 WP-CLI 整合到自動化部署流程中。以下是一個 GitHub Actions 的範例,用於在部署前檢查程式碼標準。
name: WP Check
on: [push]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
tools: wp-cli
- name: Install WP
run: |
wp core download
wp config create --dbname=test --dbuser=root --dbpass=root
- name: Verify Checksums
run: wp core verify-checksums
只需幾行 PHP 程式碼,就能讓 WP-CLI 為你所用。建立一個簡單的命令來輸出 "Hello World"。
// command.php
if ( defined( 'WP_CLI' ) && WP_CLI ) {
$command = function( $args, $assoc_args ) {
$name = $assoc_args['name'] ?? 'World';
WP_CLI::success( "Hello, $name!" );
};
WP_CLI::add_command( 'hello', $command );
}
# 運行方式:
# wp --require=command.php hello --name=Zen
例
實戰之演練理論終須實踐檢驗。以下是兩個真實的維運場景,展示 WP-CLI 如何化繁為簡,解決棘手問題。
場景一:網站被駭,快速還原
緊急某天早上,你發現網站被植入了惡意程式碼,且無法登入後台。此時 WP-CLI 是你的救命稻草。
快速找出被篡改的核心檔案。
不刪除 `wp-content`,僅覆蓋核心檔案,清除後門。
列出管理員,發現可疑帳號立即刪除。
場景二:數萬篇文章批次修改
最佳化你需要將所有文章中的舊網域 "old-site.com" 替換為 "new-site.com",且不能破壞序列化資料。
先看看會影響多少行資料,確保心中有數。
為了安全,建議先匯出 SQL,再執行替換。
確保前台立即生效。
場景三:網站健康與安全審計
日常未雨綢繆勝過亡羊補牢。建立一套自動化的審計流程,定期檢查網站是否存在潛在風險。
過期的外掛往往是安全漏洞的重災區。
確保沒有檔案被偷偷修改。
定期審查擁有最高權限的帳戶列表。
解
疑惑之微光這是 PHP 記憶體限制導致的。您可以臨時增加記憶體限制運行命令:
出於安全考慮,不建議以 root 身份運行 WP-CLI。如果必須這樣做,請添加 --allow-root 參數:
您可以使用 --debug 參數查看詳細的執行日誌。如果懷疑是外掛衝突,可以添加 --skip-plugins 參數暫時禁用所有外掛運行命令。
非常安全。WP-CLI 能夠智慧處理 PHP 序列化資料(Serialized Data),這是直接使用 SQL 語句無法做到的。建議在操作前使用 --dry-run 進行預演。
WP-CLI 提供了自更新命令,您可以一鍵升級到最新穩定版:
您可以直接使用指定版本的 PHP 可執行檔案來運行 WP-CLI Phar 包:
請首先檢查 wp-config.php 中的資料庫憑證是否正確。您也可以嘗試使用 wp db check 命令來診斷資料庫連線問題。
廣
生態之延伸WP-CLI 的力量不僅於此。透過包管理器,您可以安裝社群貢獻的命令,甚至編寫自己的擴充。
wp doctor
為您的 WordPress 進行全面體檢,發現潛在設定問題。
wp profile
剖析頁面載入過程,精確定位效能瓶頸(慢查詢、鉤子耗時)。
wp shell
內建的 REPL 環境,像 Python Shell 一樣即時執行 PHP 程式碼。
wp i18n
國際化工具集。生成 POT 檔案、轉換 PO/MO 檔案。
腳手架 (Scaffold)
快速生成標準化的 WP-CLI 命令包結構,開始您的擴充開發之旅。
單元測試
為您的外掛或佈景主題生成 PHPUnit 測試檔案。
亦可隨風潛入夜:composer require wp-cli/wp-cli-bundle