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管理员必备工具,能大幅提升运维效率。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)