SuperAPI AI 工具集

wp-cli

部署与运维

查看项目

更新于 10-15 10:32

技能介绍

WP-CLI Skill 用于通过 WP-CLI 命令行工具管理 WordPress 安装,涵盖核心、插件、主题、用户、数据库、选项、缓存、重写规则、定时任务、文章与媒体、维护与故障排查以及多站点等操作。

用途

该技能适用于需要通过命令行管理 WordPress 的场景,例如批量更新核心、插件和主题,迁移站点域名,导出导入数据库,管理用户与角色,排查站点故障,以及多站点网络管理。

主要能力

  • 核心管理:查看版本、检查更新、更新核心与数据库、校验文件完整性、全新安装。
  • 插件与主题:列出、安装、激活、停用、更新、校验校验和。
  • 用户管理:列出、创建、更新、删除用户,支持角色与密码提示。
  • 数据库:导出、导入、查询、优化、修复,以及使用 search-replace 进行安全替换。
  • 选项、缓存与重写:获取、更新、删除选项,刷新缓存,删除瞬态,刷新重写规则。
  • 定时任务:列出、运行到期任务、测试。
  • 文章与媒体:列出、创建、删除、生成文章,重新生成缩略图,导入媒体。
  • 维护与故障排查:维护模式、doctor 检查、shell、eval、配置查看。
  • 多站点:站点列表、创建,以及网络级操作。

使用方式

前提是 wp 已安装并在 PATH 中,需从 WordPress 根目录运行或通过 --path=<path> 指定路径。wp doctor 需要单独安装 wp-cli/doctor-command 包,命令为:wp package install wp-cli/doctor-command:@stable。wp maintenance-mode 已内置于 WP-CLI,无需额外包。

命令示例包括:

  • wp --version、wp core version、wp core is-installed、wp core check-update、wp core update && wp core update-db(多站点需加 --network)、wp core verify-checksums。
  • 全新安装:wp core download;wp config create --dbname=wordpress --dbuser=root --dbhost=localhost --prompt=dbpass;wp core install --url=example.com --title="Site" --admin_user=admin --admin_email=admin@example.com --prompt=admin_password。非交互式等价命令使用环境变量:wp config create --dbname=wordpress --dbuser=root --dbhost=localhost --dbpass="$WP_DB_PASS";wp core install --url=example.com --title="Site" --admin_user=admin --admin_email=admin@example.com --admin_password="$WP_ADMIN_PASS"。
  • 插件与主题:wp plugin list [--status=active] [--update=available];wp plugin install <slug> --activate;wp plugin activate <name>;wp plugin deactivate <name>;wp plugin update --all;wp plugin verify-checksums --all;wp theme list;wp theme install <slug> --activate;wp theme update --all。
  • 用户:wp user list [--role=administrator];wp user create <username> <email> --role=<role> --prompt=user_pass;wp user update <id> --role=editor --display_name="Name";wp user update <id> --prompt=user_pass;wp user delete <id> --reassign=<other-id>。
  • 数据库:wp db export backup.sql;wp db import backup.sql;wp option get siteurl;wp db query "SELECT option_value FROM $(wp config get table_prefix)options WHERE option_name='siteurl';"; wp db optimize;wp db repair;wp search-replace 'old' 'new' --precise --recurse-objects --all-tables-with-prefix --dry-run(先预览);wp search-replace 'old' 'new' --precise --recurse-objects --all-tables-with-prefix。
  • 选项、缓存、重写:wp option get <name>;wp option update <name> <value>;wp option delete <name>;wp option list --search="cache";wp cache flush;wp transient delete --all;wp rewrite flush;wp rewrite structure '/%postname%/'.
  • 定时任务:wp cron event list;wp cron event run --due-now;wp cron event run <hook-name>;wp cron test。
  • 文章与媒体:wp post list --post_type=post --post_status=publish;wp post create --post_title='Title' --post_content='Body' --post_status=publish;wp post delete <id> --force;wp post generate --count=10;wp media regenerate;wp media import <url-or-path>。
  • 维护与故障排查:wp maintenance-mode activate;wp maintenance-mode deactivate;wp maintenance-mode status;wp doctor check --all;wp shell;wp eval 'echo PHP_VERSION;';wp config get <name>;wp config list。
  • 多站点:wp site list;wp site create --slug=<slug> --title="Title";wp site list --field=url | xargs -I {} wp option get blogname --url={};网络级操作需加 --network,如 wp core update-db --network、wp transient delete --all --network、wp plugin list --status=active,active-network。

适用场景

  • 域名迁移:先导出数据库,再使用 search-replace 替换域名,注意 wp-config.php 中的 WP_HOME/WP_SITEURL 会覆盖数据库选项,需先检查 wp config list,然后设置新域名并刷新缓存与重写规则。
  • 批量更新:更新核心、数据库、插件、主题,多站点需加 --network。
  • 故障排查:校验核心文件,捕获活动插件列表,逐个停用/激活以定位问题。

限制与注意事项

  • 执行 search-replace 前必须先 --dry-run,且预览必须使用与真实运行相同的标志,否则预览不能反映实际修改范围。
  • 优先使用 --all-tables-with-prefix 而非 --all-tables,后者会重写数据库中所有表,包括其他应用共享的表,仅在明确需要时使用。
  • 密码和敏感信息不应出现在命令行中:有终端时使用 --prompt=<arg>,非交互式时使用环境变量(如 --dbpass="$WP_DB_PASS")。--prompt 会阻塞在 stdin,在脚本或代理中会挂起。
  • 破坏性操作(--yes、delete --force、plugin deactivate --all)需先与用户确认。
  • 机器输出可使用 --format=json,使用 --fields=<cols> 裁剪列。
  • wp doctor 需要单独安装 wp-cli/doctor-command 包;wp maintenance-mode 已内置。
  • 多站点网络级操作需加 --network,否则仅影响主站点。
  • 资料中未提供收费、价格、平台支持等具体信息。