让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、额外软件包、主题、插件与服务器架构而不同。请优先遵循服务商与管理者的步骤。

