讓AI只登錄1篇WordPress文章草稿的方法

將Markdown稿件只登錄為1篇WordPress草稿,並在由人確認內容的階段於發布前停止的插畫 AI 網站管理

完成WP-CLI的讀取確認後,接著嘗試將新文章只登錄1篇草稿。不要立刻發布,而是登錄到可在管理介面確認內容的草稿狀態,然後停下,不予發布。

本文以Markdown稿件為正本,說明重複確認、登錄項目的事前核准、以draft建立、記錄文章ID,以及登錄後重新讀取確認的流程。指令範例適用於虛構環境。實際操作時,請使用管理者準備的受限制指令包裝器。

登錄草稿會改變什麼

與唯讀確認不同,即使是草稿,也會將新文章儲存至WordPress資料庫。通常不會顯示於公開頁面,但會有以下影響。

  • 產生文章ID與修訂版本
  • 顯示於管理介面的草稿列表
  • 外掛可能在儲存時執行處理
  • 可能設定錯誤的分類或作者
  • 可能將個人資料或內部資訊儲存至正文

因此,「沒有公開,就可以安全地做任何事」並不成立。應將對象限定為1篇,先確認登錄項目。

整體流程

確認Markdown稿件
  ↓
確認同slug的文章與垃圾桶中的原文章
  ↓
向人提出預定登錄的項目
  ↓
只建立1篇草稿
  ↓
重新讀取文章ID、狀態與slug
  ↓
由人在管理介面確認預覽
  ↓
停止,不予發布

1. 以Markdown稿件為正本

若只在WordPress管理介面修改正文,本機稿件與公開內容就會逐漸不一致。請為每篇文章準備Markdown檔案,至少管理以下資訊。

---
title: "文章標題"
slug: "example-article"
description: "簡要說明文章內容的文字。"
status: "draft"
---

這段front matter用於稿件管理。不要直接混入WordPress正文,應分別套用至標題、slug、description與狀態等文章屬性。

正文不包含未確認的價格或服務、沒有實際體驗的感想、住客個人資料、連線目標或內部路徑。外部資訊應在發布前透過官方資訊確認。

2. 登錄前檢查內容

  • 標題與正文內容一致
  • slug基本上使用半形英數字與連字號
  • description正確概括正文
  • 標題回應同一個搜尋意圖
  • 內部連結與參考資料的URL正確
  • 沒有包含不得公開的資訊
  • status為draft
  • 稿件檔案位於已核准的位置

若還無法確認分類、標籤或精選圖片,不要憑推測設定。詳情請見如何安全設定分類、標籤與精選圖片。

3. 確認是否有相同slug

建立新文章前,分別確認已發布、草稿、私人等狀態的文章,以及垃圾桶中的原文章。post_status=any不包含垃圾桶、繼承狀態、自動草稿與排除於搜尋的自訂狀態,因此下方列舉垃圾桶以外的WordPress標準狀態。若使用自訂文章狀態,請向管理者確認,並將其加入搜尋對象。

wp post list \
  --post_type=post \
  --post_status=publish,future,draft,pending,private,auto-draft,inherit \
  --name=example-article \
  --fields=ID,post_title,post_name,post_status \
  --format=table

wp post list \
  --post_type=post \
  --post_status=trash \
  --fields=ID,post_title,post_name,post_status \
  --format=table

垃圾桶應透過指定--post_status=trash的列表另外確認。垃圾桶中的slug可能改為加上__trashed,因此只搜尋原slug,可能漏掉原文章。請透過管理介面的垃圾桶、文章標題與內容,以及必要時由管理者確認的_wp_desired_post_slug,核對是否為同一篇原文章。這個階段不需要還原或刪除垃圾桶中的文章。若無法確認原文章,也應停止,不建立新文章。

若找到既有文章,就停止新增。要更新既有文章,還是變更slug,由人判斷。如果AI自動在結尾加上數字,再建立另一篇文章,就可能增加重複頁面。

4. 向人提出登錄計畫

執行前,要求回報以下事項。

預定登錄內容
- 類型:1篇新文章
- 標題:文章標題
- slug:example-article
- 狀態:draft
- description:簡要說明文章內容的文字。
- 正文:已確認的Markdown稿件
- 分類、標籤與圖片:這次不設定
- 執行後:重新讀取文章ID與狀態,然後停止

在人確認內容之前,不執行登錄指令。

5. 建立1篇草稿

WP-CLI官方的wp post create可以從檔案讀取正文,並指定文章狀態與slug。加上--porcelain,便能只取得新文章ID。

wp post create article-body.md \
  --post_type=post \
  --post_status=draft \
  --post_title="文章標題" \
  --post_name="example-article" \
  --post_excerpt="簡要說明文章內容的文字。" \
  --porcelain

正文檔案不要包含front matter。應建立從管理用稿件安全擷取正文的流程。直接把完整正文嵌入指令字串,容易誤處理引號或換行;從已核准檔案讀取的方式較容易理解。

包裝器端固定post_type=post、post_status=draft,每1次只處理1篇,並拒絕自由追加參數。

6. 重新讀取已建立文章

使用建立時回傳的文章ID。

wp post exists 123

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

確認項目如下。

  • 回傳的文章ID存在
  • 標題與slug符合計畫
  • post_status為draft
  • 作為description使用的摘要正確
  • 只建立了1篇新文章

若狀態不同、建立了多篇,或slug不符預期,應停止,不予發布。不要當場疊加其他修正,而應向人回報文章ID與現況。

7. 在管理介面預覽

只看WP-CLI輸出,無法確認實際畫面。請在WordPress管理介面開啟目標草稿,確認以下事項。

  • Markdown、標題、條列、程式碼與表格顯示正常
  • 標題與description適當
  • 內部與外部連結指向正確目的地
  • 正文沒有顯示front matter
  • 作者、分類與標籤符合原意
  • 是否需要精選圖片與替代文字
  • 在電腦與手機寬度下可閱讀
  • 沒有應於發布前修正的事實或表達方式

即使已確認預覽,本文流程仍不進行發布。發布應視為另一次核准,並明確指定目標文章ID。

防止重複登錄的機制

AI途中逾時時,看起來可能登錄失敗,實際上文章卻已建立。不要立刻重複執行同一個指令,應以slug確認,也要依前述方式確認垃圾桶中的原文章。

安全的專用處理,依以下順序進行。

  1. 檢查slug格式
  2. 確認同slug的既有文章與垃圾桶中的原文章
  3. 若存在,就不建立任何文章,只回報文章ID
  4. 只有不存在時,才建立1篇草稿
  5. 重新讀取新文章ID與狀態

重點是設計成即使再次執行相同委託,也不會讓草稿不斷增加。

給AI的委託文字

請將這份Markdown稿件新增至WordPress。

這次只建立1篇草稿,不要發布。

執行前:
- 列出標題、slug、description、文章類型與狀態
- 搜尋標準狀態與自訂狀態的slug,並確認垃圾桶中的原文章
- 若有重複或無法確認原文章,停止,不建立新文章

登錄時:
- 將post_type固定為post、post_status固定為draft
- 只使用已核准的正文檔案
- 不要推測設定分類、標籤或圖片
- 不要修改其他文章或設定

登錄後:
- 重新讀取文章ID、標題、slug、狀態與description
- 確認只建立了1篇新文章
- 回報預覽方式與尚未設定項目,然後停止

不要在回答中轉載秘密資訊、內部路徑或未公開正文。

完成報告範例

草稿登錄結果
- 新文章:1篇
- 文章ID:123
- 狀態:draft
- slug:example-article
- 重複確認:登錄前後已確認
- 已確認:標題、description與正文
- 未設定:分類、標籤與精選圖片
- 未執行:發布、更新既有文章或變更其他設定
- 下一步:由人在管理介面確認預覽

不要只說「完成」,應分開說明確認了什麼,以及沒有做什麼。

總結

AI首次登錄文章時,以Markdown稿件為正本,確認沒有相同slug,只建立1篇草稿。用回傳的文章ID重新讀取狀態,並在由人預覽的階段停止。

事前確認請見不做修改的WP-CLI入門,分類與圖片設定請見如何設定分類、標籤與精選圖片,執行限制請見受限制指令包裝器。由人核准後的發布流程,請見從備份到HTTP與畫面確認。

參考資料

※2026年10月9日補充:依官方規格,補充重複確認時的文章狀態,以及垃圾桶中變更slug的處理。本文整體最初的資訊確認日期為2026年8月16日。

※儲存文章時的處理,依佈景主題或外掛而異。請在測試環境確認,正式環境務必從1篇草稿開始。

已複製標題與網址