使用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日。

已复制标题与网址