將文章登錄為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是postpost_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未變更
- 文章尚未發布
部分佈景主題也會自動在內文上方顯示特色圖片。若內文放入同一圖片,可能重複顯示,請確認。
失敗時不要連續操作
即使圖片匯入逾時,實際上也可能已登錄到媒體庫。立刻重新執行相同指令,可能產生多張相同圖片。
失敗時依以下順序調查。
- 確認目標文章的
_thumbnail_id - 確認剛才回傳的附件ID
- 在媒體列表確認檔名與登錄時間
- 重新讀取分類的目前值
- 向人回報現況後停止
刪除重複媒體不包含在此步驟中。應另行確認刪除對象與使用位置,再作為另一項工作處理。
給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受限制的封裝程式,經人核准後的步驟請參閱文章發布與顯示確認。
參考資料
- WordPress Developer Resources:wp post term list
- WordPress Developer Resources:wp post term set
- WordPress Developer Resources:wp term list
- WordPress Developer Resources:WP_Term_Query的筆數指定
- WordPress Developer Resources:wp media import
- WordPress Developer Resources:wp post meta
※視佈景主題與外掛而定,儲存分類或圖片時可能執行額外處理。請從測試環境與單篇草稿開始。
※2026年10月9日補充:分類候選列表已明確加入筆數上限,並補充無法僅依有限列表判定候選不存在。文章整體的資訊確認日仍為2026年8月16日。

