讓AI使用WP-CLI時,第一項工作既不是發布文章,也不是更新外掛。首先要做的,是在不變更WordPress的情況下確認目前狀態。
列出文章、外掛、佈景主題與分類,就能掌握全貌,不必逐一開啟管理介面。不過,即使是讀取指令,也可能選錯目標網站,或輸出非公開文章與內部資訊。
本文將最初允許Codex或Claude Code執行的WP-CLI操作,限定為少量確認指令。以下例子使用虛構環境。請勿直接貼到自己的伺服器執行,應優先遵循服務商或管理者提供的執行方式。
界定「唯讀」的範圍
本文要進行的確認如下。
- 能否辨識WordPress並取得版本
- 已安裝外掛的名稱、狀態與版本
- 已安裝佈景主題的名稱、狀態與版本
- 已發布文章與草稿的ID、標題、slug、狀態與更新時間
- 分類的ID、名稱、slug與文章數
也要明確列出不執行的事項。
- 建立、更新或刪除文章、設定、分類與使用者
- 更新WordPress核心、外掛、佈景主題與翻譯
- 啟用或停用外掛與佈景主題
- 清除快取、執行cron與搜尋取代
- 執行PHP程式碼、互動式shell與資料庫指令
- 批次顯示設定值、認證資訊、文章內文與自訂欄位
「只調查」的範圍並不明確。應連同確認目標與可顯示的欄位一起決定。
執行前確認目標
執行WP-CLI前,管理者至少要確認以下事項。
- 目標是正式環境還是測試環境
- WordPress的位置與目標URL
- 執行WP-CLI的作業系統使用者
- 獲准使用的封裝程式或執行方式
- 結果的儲存位置與分享範圍
WP-CLI有--path、--url等用來指定目標的全域參數。應由管理者透過封裝程式或設定固定,而非讓AI任意改寫。如果尚未準備好,請先參閱將WP-CLI交給AI前的準備。
1. 確認WordPress的狀態
首先確認WordPress版本,以及目標路徑能否被辨識為WordPress。
wp core version
wp core is-installed
wp core version會顯示版本。若已安裝WordPress,wp core is-installed會傳回結束代碼0。後者成功時可能不顯示任何內容,因此不要因為「空白」就判定失敗,也要確認結束代碼。
如果在這一步出錯,不要猜測其他位置並四處尋找,也不要重新安裝WordPress。應向管理者確認目標路徑、執行使用者與服務商的步驟。
2. 確認外掛清單
wp plugin list \
--fields=name,status,version,update,auto_update \
--format=table
可確認的主要欄位如下。
name:外掛的識別名稱status:啟用、停用等狀態version:目前版本update:是否有可用更新auto_update:自動更新的狀態
list是取得清單的操作,與執行更新的update不同。即使顯示可用更新,也不要當場批次更新。涉及預約、詢問、付款與快取的外掛,應先確認影響範圍與復原方式,再作為另一項工作處理。
清單中的外掛名稱可能讓人推測網站架構。請勿直接貼到社群媒體或公開聊天室,應僅與維護人員分享。
3. 確認佈景主題清單
wp theme list \
--fields=name,status,version,update,auto_update \
--format=table
可確認目前啟用與停用的佈景主題、版本,以及可用更新。如果使用子佈景主題,可能同時需要啟用中的子佈景主題與父佈景主題。請勿因為「未啟用就不需要」而刪除。
啟用、更新或刪除佈景主題會影響整體顯示。不要把清單確認與變更工作放在同一項委託中。
4. 限制筆數來確認文章清單
文章清單應限制要顯示的文章狀態、筆數與欄位。
wp post list \
--post_type=post \
--post_status=publish,draft \
--posts_per_page=20 \
--orderby=modified \
--order=DESC \
--fields=ID,post_title,post_name,post_status,post_modified \
--format=table
這個例子只顯示已發布文章與草稿,依更新時間由新到舊排列,共20筆。
ID:往後將目標限定為單篇文章時使用的編號post_title:文章標題post_name:URL使用的slugpost_status:已發布、草稿等狀態post_modified:WordPress中的更新時間
不把內文與摘要放進清單,是為了避免輸出過大,並防止意外分享非公開資訊。如果網站有儲存預約者資訊的自訂文章類型,就不要使用post_type=any這類過於寬泛的指定方式。
只詳細確認單篇文章
確認目標文章ID後,只讀取必要欄位。
wp post get 123 \
--fields=ID,post_title,post_name,post_status,post_modified \
--format=json
ID只是範例。若只依標題搜尋來選擇,可能弄錯同名文章,因此後續操作應固定使用已確認的文章ID。
5. 確認分類
wp term list category \
--fields=term_id,name,slug,count \
--format=table
可確認分類的ID、名稱、slug與文章數。這些資訊可用來找出名稱相似、文章數為0或名稱寫法不一致的分類。
文章數為0不代表就能刪除。選單、固定頁面或預約說明可能連結到該分類,因此整理分類應作為另一項稽核進行。
即使是「list」「get」也需要確認的原因
選來讀取的指令,原意是不變更WordPress內容。即使如此,也要注意以下事項。
- 載入WordPress時,可能執行佈景主題或外掛的處理程序
- 額外套件或外掛能註冊自訂WP-CLI指令
- 錯誤或除錯輸出可能包含內部路徑
- 清單可能包含非公開文章、使用者名稱與網站架構
- 檢查可用更新時,可能進行外部通訊或參照快取資訊
不要只憑指令名稱就判定安全。應先在測試環境確認行為,並在受限制的封裝程式中固定允許的指令、參數與輸出欄位。
起初應避免的輸出
在確認必要性與分享範圍前,不列出以下資訊。
- 透過
wp config list等可取得的設定值與認證相關資訊 - 使用者的電子郵件地址、登入名稱與權限清單
- 草稿、非公開頁面與詢問內容的內文
- 文章中繼資料、選項與資料庫的全部資料
- 伺服器內部的絕對路徑、連線目標與環境變數
- 完整除錯紀錄與錯誤紀錄
即使不在AI回答中顯示,也可能留在工作紀錄或暫存檔中。應將結果縮減至必要欄位,也要與管理者決定如何處理不再需要的暫存資料。
給AI的唯讀提示詞
請透過WP-CLI,以唯讀方式稽核這個WordPress的狀態。
允許確認:
- WordPress版本與安裝狀態
- 外掛名稱、狀態、版本與可用更新
- 佈景主題名稱、狀態、版本與可用更新
- 已發布文章與草稿的ID、標題、slug、狀態與更新時間(最新20筆)
- 分類的ID、名稱、slug與文章數
禁止事項:
- 建立、更新、刪除、啟用、停用與安裝
- 清除快取、cron、DB、PHP與搜尋取代
- 顯示設定值、使用者資訊、文章內文與中繼資料
- 變更目標路徑、URL與執行使用者
執行前請列出預定操作名稱與輸出欄位。
如果出現錯誤或目標不一致,請停止,不要追加操作。
請將結果分為已確認、注意事項與尚未確認項目,
不要顯示秘密資訊或內部路徑。
如果環境沒有執行途徑的限制,單靠這段文字不能保證安全。管理者應結合技術層面的允許清單。
如何解讀結果
不要立刻將唯讀稽核結果轉成變更指示,而應分為以下三類。
已確認
從執行的指令與輸出中直接確認的事實。也要附上確認範圍,例如「啟用中的佈景主題有一個」「已確認最新20筆公開文章」。
注意事項
有可用更新、分類名稱相似、保留舊佈景主題等,需要考慮是否處理的項目。不要直接判定為問題,而應說明需要調查影響。
尚未確認
預約表單是否正常、備份能否復原、所有文章的品質等,無法只根據這次清單判斷的項目。不要混淆「未顯示」與「不存在」。
唯讀稽核完成檢查
- 已確認目標網站,並區分正式與測試環境
- 只使用獲准的封裝程式
- 未執行變更類操作
- 將輸出欄位與筆數限定在必要範圍
- 已確認WordPress、外掛、佈景主題、文章與分類
- 已確認結束代碼及有無錯誤
- 未在回答中顯示秘密資訊、個人資訊與內文
- 分開回報已確認、注意事項與尚未確認項目
- 已確認執行前後沒有非預期更新
完成以上確認後,才由人選擇下一項必要工作。如果要建立新文章,請透過讓AI只登錄1篇WordPress文章草稿的方法確認重複檢查與停留在草稿狀態的步驟。
總結
最初的WP-CLI工作,重點是將目標與輸出限定在小範圍,而非蒐集大量資訊。使用少量list、get操作,確認WordPress狀態、外掛、佈景主題、最新文章與分類,不顯示設定值、內文與使用者資訊。
確認結果不應自動變成更新指示,而應由人判斷注意事項與尚未確認項目。如果尚未準備好,請回到權限、備份與測試環境的確認,並透過受限制的封裝程式縮小執行途徑。文章清單整理於給旅宿主人的網站營運指南。
參考資料
- WordPress Developer Resources:wp post list
- WordPress Developer Resources:wp post get
- WordPress Developer Resources:wp plugin list
- WordPress Developer Resources:wp theme list
- WordPress Developer Resources:wp term list
※可用指令與行為會因WP-CLI、WordPress、額外套件、佈景主題、外掛與伺服器架構而不同。請優先遵循服務商與管理者的步驟。

