使用WP-CLI安全設定分類、標籤與特色圖片的方法

AI只將旅宿主人核准的分類、標籤與特色圖片設定到1篇WordPress草稿的插畫 AI 網站管理

將文章登錄為WordPress草稿後,下一步是設定分類、標籤與特色圖片。在管理介面只需點擊幾次,但使用WP-CLI時,若不明確指定「哪篇文章」以及「保留還是取代現有設定」,就可能變更其他文章,或移除必要分類。

本文以已建立的1篇草稿為對象,先確認既有分類與標籤,再設定經人核准的分類與圖片,最後重新讀取結果。指令範例使用虛構環境。

先了解各項功能

分類

以大主題區分文章,方便讀者在網站內瀏覽。分類可以有階層,例如將「AI網站管理」放在「給旅宿主人」之下。

與其替單篇文章加上許多分類,應先決定讀者會從哪個入口尋找這篇文章。請優先遵循各網站的營運規則。

標籤

用來輔助彙整跨分類的主題。大量建立寫法相似的標籤,會增加只有單篇文章、內容薄弱的列表頁。應避免「WordPress」「ワードプレス」「WP」這類重複,基本上從既有標籤選擇。

特色圖片

用作文章列表、社群分享與相關文章等處的代表圖片,與在內文插入圖片不同。只將圖片登錄到媒體庫,也不會自動成為文章的特色圖片。

替代文字

向無法觀看圖片的使用者傳達內容的文字。應簡潔說明圖片目的,不要不自然地堆砌文章標題或搜尋關鍵字。純裝飾圖片的處理方式不同;若特色圖片用來說明文章內容,就應描述畫面中呈現的事物。

這項工作會變更哪些內容

  • 目標文章與分類、標籤的關聯
  • 媒體庫中的附件
  • 圖片替代文字等中繼資料
  • 目標文章的特色圖片ID
  • 視佈景主題而定,文章列表或預覽的顯示

即使仍是草稿,資料庫與媒體儲存空間也會變更。若匯入錯誤圖片,即使從文章移除,圖片仍會留在媒體庫。執行前應固定目標ID、圖片檔案與既有設定。

整體流程

確認目標草稿ID
  ↓
讀取目前分類、標籤與特色圖片
  ↓
由人從既有分類候選中選擇
  ↓
確認圖片權利、內容、尺寸與alt
  ↓
只設定目標1篇文章
  ↓
重新讀取分類、附件ID、特色圖片ID與alt
  ↓
在管理介面預覽後停止

1. 以ID確認目標文章

使用前一篇文章所回傳的文章ID。不要只靠標題搜尋來決定變更對象。

wp post get 123 \
  --fields=ID,post_title,post_name,post_status,post_type \
  --format=json

若以下項目不一致,就停止。

  • 文章ID符合預定值
  • post_type是post
  • post_status是draft
  • 標題與slug符合目標稿件

若文章已發布,本文步驟不會變更它。變更已發布文章的分類,也會影響列表與搜尋引擎的導覽路徑,因此需要另行核准。

2. 讀取目前分類與特色圖片

記錄變更前的狀態。

wp post term list 123 category \
  --fields=term_id,name,slug,parent \
  --format=json

wp post term list 123 post_tag \
  --fields=term_id,name,slug \
  --format=json

wp post meta get 123 _thumbnail_id

若尚未設定特色圖片,取得_thumbnail_id時可能沒有值或出現錯誤。封裝程式應將「未設定」視為正常確認結果,避免因此錯誤地中斷整個流程。

將輸出保存在執行紀錄中。若之後發現非預期取代,就能確認原本的分類、標籤與圖片ID。

3. 尋找既有分類與標籤

先列出網站上已存在的候選項目,限制筆數與輸出欄位。

wp term list category \
  --fields=term_id,name,slug,parent,count \
  --number=20 \
  --orderby=name \
  --order=asc \
  --format=table

wp term list post_tag \
  --fields=term_id,name,slug,count \
  --number=20 \
  --orderby=name \
  --order=asc \
  --format=table

此例將分類與標籤各自限定為最多20筆。省略--number時,只有--fields或--format=table不會限制筆數。不要只因這20筆中找不到,就判定「沒有既有分類」;應透過管理者允許的分頁,或依名稱、slug篩選,繼續確認候選項目。確認完成前,不建立新分類。

不要讓AI只憑名稱選擇,應由人確認文章計畫與既有分類架構。不同父分類之下可能有同名子分類,因此也要確認parent與term_id。

此步驟不自動建立新分類

沒有候選項目時,若AI自動建立相似標籤或分類,分類就會持續增加。若要新增,應另行考慮以下事項。

  • 是否已有相同意義的分類
  • 往後是否會用於多篇文章
  • slug與顯示名稱如何設定
  • 父分類設在哪裡
  • 分類列表是否納入搜尋對象

本文只使用已核准的既有分類。

4. set會取代既有分類

WP-CLI官方的wp post term set會取代目標文章在該分類法下已設定的值,並非「新增一個」。

例如,若未確認目前分類就執行以下指令,原本附加的分類可能被移除。

wp post term set 123 category ai-site-management --by=slug

若網站也會明確替文章附加父分類,應一次指定所有已核准的分類。

wp post term set 123 category 40 41 --by=id

此處40與41是虛構的term ID。應事先確認實際ID,連同順序與筆數一起核准。階層分類中,為避免同名混淆,使用ID較容易判斷。

標籤使用set時,也會取代既有標籤。

wp post term set 123 post_tag wp-cli wordpress-operation --by=slug

若需要「保留既有標籤,只新增一個」,另有wp post term add操作。不過,AI用封裝程式不宜增加過多行為;統一採取「先確認變更前列表,再取代為已核准的最終狀態」,較容易驗證。

5. 將圖片送至伺服器前先確認

圖片檔案應由人確認以下事項。

  • 自己拍攝、製作,或符合使用條件的圖片
  • 未拍到住宿旅客的臉、車牌與預約資訊等
  • 沒有會讓人誤解貓咪或設施的合成、安排
  • 能代表文章內容
  • 檔案格式與容量符合網站營運規則
  • 檔名能描述內容,且不含秘密資訊或個人姓名
  • 替代文字說明圖片內容與目的

使用圖片生成AI時,也應避免被誤認為真實設施的照片。若是設施介紹文章,也需要考慮優先使用已獲許可的實際照片。

6. 只匯入1張特色圖片

WP-CLI的wp media import能將圖片匯入媒體庫,並透過--post_id與文章建立關聯。指定--featured_image時,也會設定為該文章的特色圖片。

wp media import approved-featured-image.webp \
  --post_id=123 \
  --title="說明文章內容的圖片標題" \
  --alt="旅宿主人確認文章分類與圖片的插畫" \
  --featured_image \
  --porcelain

記錄--porcelain回傳的附件ID。

不要讓AI任意指定本機檔案或URL。專用封裝程式應採取以下限制。

  • 只允許指定圖片資料夾內的1個檔案
  • 限制允許的副檔名與最大容量
  • 拒絕包含..的路徑與外部URL
  • 目標僅限已核准的草稿ID
  • 由處理端固定--post_id、--featured_image與--porcelain
  • alt為空時不執行
  • 不接受一次提交多個檔案

直接從外部URL匯入,來源或內容之後可能變更。應先放到本機的獲准資料夾,確認內容與權利後再使用。

7. 重新讀取設定結果

不要只根據指令結束代碼判定成功,應從目標文章確認。

wp post term list 123 category \
  --fields=term_id,name,slug,parent \
  --format=json

wp post term list 123 post_tag \
  --fields=term_id,name,slug \
  --format=json

wp post meta get 123 _thumbnail_id

確認回傳的特色圖片ID是否與匯入時記錄的附件ID一致。接著,也要讀取附件本身。

wp post get 456 \
  --fields=ID,post_title,post_mime_type,post_parent,guid \
  --format=json

wp post meta get 456 _wp_attachment_image_alt

此處456是虛構附件ID。確認項目如下。

  • 目標文章ID未變更
  • 分類符合已核准的最終列表
  • 標籤符合已核准的最終列表
  • 先前必要的分類未被意外移除
  • 特色圖片ID與附件ID一致
  • MIME類型符合預定圖片格式
  • 替代文字不為空,且符合內容
  • 仍維持草稿狀態

8. 在管理介面預覽

最後由人在管理介面開啟草稿。

  • 列表與文章上方的特色圖片裁切符合預期
  • 手機上的圖片不會過大或模糊
  • 圖片中的文字不會難以閱讀
  • 分類與標籤的顯示位置、連結目標正確
  • 如預期出現在既有分類列表中
  • 作者與description未變更
  • 文章尚未發布

部分佈景主題也會自動在內文上方顯示特色圖片。若內文放入同一圖片,可能重複顯示,請確認。

失敗時不要連續操作

即使圖片匯入逾時,實際上也可能已登錄到媒體庫。立刻重新執行相同指令,可能產生多張相同圖片。

失敗時依以下順序調查。

  1. 確認目標文章的_thumbnail_id
  2. 確認剛才回傳的附件ID
  3. 在媒體列表確認檔名與登錄時間
  4. 重新讀取分類的目前值
  5. 向人回報現況後停止

刪除重複媒體不包含在此步驟中。應另行確認刪除對象與使用位置,再作為另一項工作處理。

給AI的委託文字

請替草稿文章ID 123設定分類、標籤與特色圖片。

執行前:
- 確認文章ID、標題、slug、post_type與post_status
- 記錄目前分類、標籤與_thumbnail_id
- 從既有分類與標籤提出候選
- 不建立新分類或標籤
- 確認圖片檔名、格式、容量、alt與使用條件
- 列出變更前狀態與預定變更,等待人核准前停止

執行時:
- 只以已核准的1篇草稿為對象
- 將分類與標籤設定為已核准的最終列表
- 只匯入獲准資料夾內的1張圖片
- 使用--featured_image並記錄附件ID
- 不發布。不變更或刪除其他文章與既有媒體

執行後:
- 重新讀取分類、標籤、_thumbnail_id、附件與alt
- 確認post_status仍為draft
- 回報需要人在預覽中確認的項目後停止

完成回報範例

草稿設定結果
- 目標:文章ID 123、example-article
- 狀態:維持draft
- 分類:已確認變更前後
- 標籤:已確認變更前後
- 特色圖片:附件ID 456
- alt:已設定並重新讀取
- 新分類:未建立
- 未變更的項目:其他文章、既有媒體、發布狀態
- 下一項操作:由人在管理介面預覽

總結

設定分類、標籤與特色圖片時,應先確認目標草稿ID與變更前狀態。wp post term set會取代既有分類,因此應傳入已核准的最終列表,並在設定後重新讀取。

圖片應先確認權利、個人資訊、內容、容量與替代文字,再只匯入1張,並核對附件ID與_thumbnail_id一致。草稿建立方式請參閱只登錄1篇文章草稿的方法,限制方式請參閱WP-CLI受限制的封裝程式,經人核准後的步驟請參閱文章發布與顯示確認。

參考資料

※視佈景主題與外掛而定,儲存分類或圖片時可能執行額外處理。請從測試環境與單篇草稿開始。

※2026年10月9日補充:分類候選列表已明確加入筆數上限,並補充無法僅依有限列表判定候選不存在。文章整體的資訊確認日仍為2026年8月16日。

已複製標題與網址