搜索全站
安装部署 11 分钟阅读

WP-CLI 常用命令大全:更新、清理、重建与排障的一站式清单

整理 WordPress 日常运维中最常用的 WP-CLI 命令:核心与插件更新、缓存清理、缩略图重建、站点地址修改、用户与权限管理、数据库查询与优化、定时任务管理。每条附参数说明与使用场景,并给出后台进不去时的应急命令组合。

U
UFO_PF 2022-11-09 · 阅读 11 分钟
WP 安装部署
阅读提示
本文约 4,010 字,预计阅读 11 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:把重复点击变成一行命令

后台能做的事,WP-CLI 基本都能做;后台做不到的事(比如批量改一千篇文章的作者、后台进不去时禁用插件),它也能做。

本文不求全,只整理真实运维中高频使用的命令,按场景分组。建议收藏,用到时直接翻。

原理分析:命令的通用规则

所有命令都可以加三个全局参数:

--path=/var/www/xxx     # 指定 WordPress 目录
--allow-root            # 允许 root 执行(不推荐,但 VPS 上常见)
--skip-plugins --skip-themes   # 不加载插件/主题,用于排除插件干扰排障

最后一组尤其重要:当站点因插件冲突白屏时,用 --skip-plugins 执行 WP-CLI,WordPress 会跳过所有插件加载,你就能安全地禁用问题插件。

保姆级实操:按场景分类的命令清单

一、查看状态与诊断

wp core version                 # 核心版本
wp core check-update            # 是否有更新
wp plugin list                  # 插件列表及状态(含 update 列)
wp theme list                   # 主题列表
wp option get home              # 查看站点地址
wp option get siteurl           # 查看 WordPress 地址
wp db check                     # 检查数据库表
wp db size --all-tables         # 各表大小,找膨胀的表
wp cron event list              # 查看定时任务

二、更新核心、插件、主题

wp core update                      # 更新核心(小版本)
wp core update --version=6.6.2 --force   # 指定版本
wp core update-db                   # 更新数据库结构
wp plugin update --all              # 更新全部插件
wp plugin update wordpress-seo      # 更新单个
wp plugin update --all --exclude=elementor  # 排除某个
wp theme update --all
wp language core update             # 更新翻译

三、缓存与临时数据清理

wp cache flush                  # 清对象缓存
wp transient delete --all       # 删全部瞬态(缓存插件残留常用)
wp transient delete-expired     # 只删过期
wp rewrite flush                # 刷新固定链接规则(换主题/改结构后必做)
wp option delete _transient_doing_cron

四、媒体与缩略图

wp media regenerate --yes                  # 重建全部缩略图
wp media regenerate --image-size=thumbnail # 只重建某尺寸
wp media image-size                        # 查看已注册尺寸
wp media import /path/to/img.jpg --title="示例" --alt="说明"

换主题后缩略图尺寸不对、图片裁剪变形,第一条命令就能解决。大图库站点执行时间较长,建议配合 --yes 在非高峰跑。

五、用户与权限

wp user list --fields=ID,user_login,roles
wp user create editor1 editor@example.com --role=editor --user_pass='密码'
wp user set-role 3 administrator          # 改角色
wp user update 1 --user_pass='新密码'      # 重设密码(忘记密码时救急)
wp user delete 5 --reassign=1             # 删用户并把内容转给 ID 1
wp cap list administrator                 # 查看角色能力

六、内容批量操作

wp post list --post_type=post --posts_per_page=20 --fields=ID,post_title,post_status
wp post delete 123 124 --force            # 强制删除(跳过回收站)
wp post update 123 --post_status=publish
wp post create --post_type=page --post_title='关于我们' --post_status=publish
wp term list category --fields=term_id,name,slug
wp search-replace '旧内容' '新内容' wp_posts --dry-run   # 先干跑

七、数据库操作

wp db export backup.sql                    # 导出
wp db export --tables=wp_posts,wp_postmeta # 只导部分表
wp db import backup.sql                    # 导入
wp db optimize                             # 优化表(等同 OPTIMIZE TABLE)
wp db repair                               # 修复表
wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_status='draft';"

八、站点地址与配置

wp option update home 'https://newdomain.com'
wp option update siteurl 'https://newdomain.com'
wp config set WP_MEMORY_LIMIT 256M --raw
wp config set DISABLE_WP_CRON true --raw --type=constant

--raw 表示不加引号(用于布尔和整数),--type=constant 表示写入 define() 而不是 option。

九、应急排障组合(后台进不去时)

# 1. 跳过插件加载,列出插件状态
wp plugin list --skip-plugins

# 2. 禁用可疑插件
wp plugin deactivate 问题插件 --skip-plugins

# 3. 切回默认主题
wp theme activate twentytwentyfour --skip-themes

# 4. 关闭调试输出并清缓存
wp config set WP_DEBUG false --raw --type=constant
wp cache flush

常见踩坑与失败案例

  1. wp media regenerate 跑一半超时 —— 图片太多。分批跑:wp media regenerate --yes 配合 screen 或 nohup,并调大 memory_limit。
  2. wp plugin update --all 后站点崩了 —— 永远先备份:wp db export before-update.sql,出问题用 wp plugin update 插件 --version=旧版本 回滚。
  3. wp search-replace 破坏序列化数据 —— 一定要加 --precise(较新版本默认行为)并先 --dry-run 看影响行数。
  4. 案例:运维在 root 下执行 wp db optimize,之后站点报权限错误。原因是操作过程中生成了属主为 root 的临时文件。始终用 sudo -u www-data wp ... 执行。
  5. wp cron event list 为空 —— WP-Cron 关闭或站点从未被访问。改用系统 cron 触发 wp-cron.php。

总结

不需要背下全部命令,记住三组就够覆盖 90% 场景:诊断组(core version / plugin list / db size / cron event list)、修复组(cache flush / transient delete --all / rewrite flush / media regenerate)、应急组(--skip-plugins + plugin deactivate + theme activate)。把这三组写成自己的备忘脚本,日常运维和事故处理都能快一大截。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。