不变更网站的WP-CLI入门|安全确认文章、插件与主题

旅宿主人与AI通过受保护的屏幕,用放大镜确认WordPress文章、插件与主题的插画 AI 网站管理

让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使用的slug
  • post_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状态、插件、主题、最新文章与分类,不显示设置值、正文与用户信息。

确认结果不应自动变成更新指示,而应由人判断注意事项与尚未确认项目。如果尚未准备好,请回到权限、备份与测试环境的确认,并通过受限制的包装程序缩小执行途径。文章列表整理于给旅宿主人的网站运营指南。

参考资料

※可用指令与行为会因WP-CLI、WordPress、额外软件包、主题、插件与服务器架构而不同。请优先遵循服务商与管理者的步骤。

已复制标题与网址