SuperAPI AI 工具集

wp-wpcli-and-ops

部署与运维

查看项目

更新于 10-15 18:31

技能介绍

用途

该技能面向使用 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>
  • 确认是否为多站点以及命令是否应网络范围执行
  • 了解约束条件(无停机、无数据库写入、维护窗口等)

操作步骤

  1. 防护措施:确认环境与影响范围。WP-CLI 命令可能具有破坏性,执行任何写操作前需确认环境、目标定位,并在高风险操作前备份。

  2. 检查 WP-CLI 与站点定位:运行 node skills/wp-wpcli-and-ops/scripts/wpcli_inspect.mjs --path=<path> [--url=<url>]。若 WP-CLI 不可用,回退到项目文档化的工具(Composer、容器或系统包)安装,或询问预期执行环境。

  3. 选择合适工作流:

    • A) 安全 URL/域名迁移:wp db export(备份)→ wp search-replace --dry-run(审查影响)→ 执行实际替换(带适当标志)→ 必要时刷新缓存/重写规则。
    • B) 插件/主题操作:使用 wp plugin * / wp theme *,先确认作用于预期站点(及网络)。
    • C) cron 与队列:检查 cron 状态并运行单个事件进行调试,而非盲目运行全部。
    • D) 多站点操作:始终决定是操作单个站点(--url=)还是网络范围(--network / 遍历站点)。
  4. 自动化模式:对于可重复运维,优先使用 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 获取更多调试信息