用途
该技能面向使用 WP-CLI(wp 命令)进行 WordPress 运维工作的场景,包括:
- wp search-replace(URL 变更、域名迁移、协议切换)
- 数据库导出/导入、重置与检查(wp db *)
- 插件/主题安装、启用、更新及语言包管理
- cron 事件列出与运行
- 缓存/重写规则刷新
- 多站点操作(wp site *、--url、--network)
- 构建可重复脚本(wp-cli.yml、shell 脚本、CI 任务)
主要能力
技能提供了一套结构化的操作流程与参考文档,覆盖安全防护、站点定位、工作流选择、自动化模式、验证与故障排查。具体包括:
- 运行检查脚本 wpcli_inspect.mjs 以确定 WP-CLI 可用性与站点定位
- 针对不同任务类型(搜索替换、包管理、cron/缓存、多站点)提供专门参考文档
- 提供安全操作指南(references/safety.md)、搜索替换指南(references/search-replace.md)、包与更新指南(references/packages-and-updates.md)、cron 与缓存指南(references/cron-and-cache.md)、多站点指南(references/multisite.md)、自动化指南(references/automation.md)以及调试指南(references/debugging.md)
使用方式
前置输入
- 确认 WP-CLI 运行位置(本地开发、预发布、生产)及是否安全运行
- 确定目标站点根目录:--path=<wordpress-root>,多站点时还需 --url=<site-url>
- 确认是否为多站点以及命令是否应网络范围执行
- 了解约束条件(无停机、无数据库写入、维护窗口等)
操作步骤
-
防护措施:确认环境与影响范围。WP-CLI 命令可能具有破坏性,执行任何写操作前需确认环境、目标定位,并在高风险操作前备份。
-
检查 WP-CLI 与站点定位:运行 node skills/wp-wpcli-and-ops/scripts/wpcli_inspect.mjs --path=<path> [--url=<url>]。若 WP-CLI 不可用,回退到项目文档化的工具(Composer、容器或系统包)安装,或询问预期执行环境。
-
选择合适工作流:
- A) 安全 URL/域名迁移:wp db export(备份)→ wp search-replace --dry-run(审查影响)→ 执行实际替换(带适当标志)→ 必要时刷新缓存/重写规则。
- B) 插件/主题操作:使用 wp plugin * / wp theme *,先确认作用于预期站点(及网络)。
- C) cron 与队列:检查 cron 状态并运行单个事件进行调试,而非盲目运行全部。
- D) 多站点操作:始终决定是操作单个站点(--url=)还是网络范围(--network / 遍历站点)。
-
自动化模式:对于可重复运维,优先使用 wp-cli.yml 设置默认值(路径/URL、PHP 内存限制)、记录命令并在出错时停止的 shell 脚本、默认运行只读检查的 CI 任务。
验证
- 在可能影响定位或配置的更改后重新运行 wpcli_inspect
- 确认预期副作用:正确的 URL 已更新、插件/主题处于预期状态、cron/缓存已按需刷新
- 若有健康检查端点或冒烟测试套件,在运维更改后运行
适用场景
- WordPress 站点迁移(域名、协议变更)
- 数据库备份、恢复与检查
- 插件、主题、用户与内容的批量管理
- cron 事件调试与缓存刷新
- 多站点环境下的站点级或网络级操作
- 构建可重复的运维脚本与 CI 流程
限制
- 无法确认环境安全性时,不应执行写操作
- 若仓库使用容器化工具(Docker/wp-env)但无法访问,需询问预期的命令运行器或 CI 任务
- 搜索替换可能引发意外的序列化问题,需使用正确标志并安全处理序列化数据
- 多站点命令可能影响错误站点,需正确指定 --url 或 --network
- 常见错误包括“Error: This does not seem to be a WordPress installation.”(路径错误、容器错误或缺少 wp-config.php)
故障排查
- 检查 --path 是否正确、容器是否匹配、wp-config.php 是否存在
- 多站点命令影响错误站点时,检查 --url 是否缺失或错误
- 搜索替换导致序列化问题时,检查标志是否正确、是否安全处理序列化数据
- 参考 references/debugging.md 获取更多调试信息