meta-description: WP-CLI命令行管理WordPress完整教程,从安装配置到批量管理的高效使用方法。

keywords: WP-CLI,WordPress命令行,批量管理,自动化运维,WordPress管理

# WP-CLI命令行管理WordPress完整教程

WP-CLI是WordPress官方命令行工具,本文介绍从安装到批量管理的高效使用方法。

## 为什么要使用WP-CLI

| 优势 | 说明 |

|------|------|

| 速度快 | 无浏览器开销 |

| 批量操作 | 一次性处理大量 |

| 自动化 | 可写脚本 |

| 资源占用低 | SSH即可操作 |

## 安装WP-CLI

### Linux安装


# 下载wp-cli
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

# 添加执行权限
chmod +x wp-cli.phar

# 移动到PATH
sudo mv wp-cli.phar /usr/local/bin/wp

# 验证
wp --info

### Windows安装


# 下载wp-cli.phar
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" -OutFile "wp-cli.phar"

# 创建wp.bat
@echo off
php "C:\path\to\wp-cli.phar" %*

## 常用命令

### 核心管理


# 查看WordPress版本
wp core version --path=/var/www/html

# 更新WordPress
wp core update

# 更新数据库
wp core update-db

# 检查健康检查
wp site-health

### 插件管理


# 列出所有插件
wp plugin list

# 安装插件
wp plugin install woocommerce --activate

# 批量激活插件
wp plugin activate $(wp plugin list --status=inactive --field=name)

# 更新所有插件
wp plugin update --all

# 删除插件
wp plugin delete contact-form-7

### 主题管理


# 列出主题
wp theme list

# 安装主题
wp theme install astra --activate

# 删除主题
wp theme delete twentyseventeen

# 更新主题
wp theme update --all

### 内容管理


# 创建文章
wp post create --post_title='新文章' --post_content='内容' --post_status=publish

# 列出文章
wp post list

# 更新文章
wp post update 123 --post_title='新标题'

# 删除文章
wp post delete 123 --force

### 用户管理


# 创建用户
wp user create johndoe jhon@example.com --role=author

# 更新用户
wp user update 123 --user_pass=新密码

# 删除用户
wp user delete 123 --reassign=1

## 批量操作

### 批量导入/导出


# 导出文章
wp export --dir=/backup/ --start_date=2025-01-01

# 导入WXR文件
wp import /backup/export.xml --authors=create

# 导出数据库
wp db export /backup/db-$(date +%Y%m%d).sql

### 批量修改


# 批量替换内容
wp search-replace '旧域名.com' '新域名.com' --dry-run

# 正式替换(去掉--dry-run)
wp search-replace 'http://' 'https://' wp_posts wp_postmeta

# 批量删除修订版
wp post delete $(wp post list --post_type=revision --format=csv --fields=ID | tail -n +2) --force

### 批量设置


# 批量设置所有文章分类
wp post list --format=csv --fields=ID | tail -n +2 | while read id; do
    wp post term set $id category 123
done

## 自动化脚本

### 自动备份脚本


#!/bin/bash
# wp-backup.sh

DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup/wordpress"
WP_DIR="/var/www/html"

# 导出数据库
wp db export $BACKUP_DIR/db-$DATE.sql --path=$WP_DIR

# 打包文件
tar -czf $BACKUP_DIR/files-$DATE.tar.gz $WP_DIR/wp-content/

# 发送成功通知
echo "Backup completed: $DATE" | mail -s "WordPress Backup" admin@example.com

# 添加到cron
crontab -e
0 3 * * * /scripts/wp-backup.sh

### 自动更新脚本


#!/bin/bash
# wp-autoupdate.sh

wp core update --path=/var/www/html
wp plugin update --all --path=/var/www/html
wp theme update --all --path=/var/www/html

# 清理旧版本
wp cache flush --path=/var/www/html

## 多站点管理

### 列出所有站点


wp site list --field=url

# 在特定站点执行命令
wp user list --url=https://subsite.example.com

### 批量创建站点


for site in site1 site2 site3; do
    wp site create --slug=$site --title="$site Title"
done

## WP-CLI配置文件

### 创建wp-cli.yml


# /var/www/html/wp-cli.yml
path: /var/www/html
url: https://example.com

# SSH远程执行
@staging:
  ssh: staging@example.com:~/html

@production:
  ssh: production@example.com:/var/www/html

# 远程执行
wp @staging plugin list
wp @production core update

## 性能调优

### 缓存清理


# 清理修订版和自动草稿
wp db query "DELETE FROM wp_posts WHERE post_status IN ('auto-draft', 'trash');"

# 优化数据库
wp db optimize

# 重建索引
wp db repair

### 禁用WP-Cron,使用系统Cron


# 禁用WP-Cron
wp config set DISABLE_WP_CRON true

# 系统cron替代
crontab -e
*/15 * * * * php /var/www/html/wp-cron.php > /dev/null 2>&1

## 故障排查

| 问题 | 解决方案 |

|------|----------|

| 命令无响应 | 检查PHP CLI版本 |

| 权限错误 | 使用sudo -u www-data wp ... |

| 内存不足 | 增加PHP内存限制 |

| 超时 | 使用wp --allow-root --skip-plugins |

WP-CLI是WordPress管理员必备工具,能大幅提升运维效率。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。