文派命令行接口
WordPress 管理之道无需浏览器,指尖流转代码,掌控 WordPress 之一切。
速
执行快如闪电,无需等待,插件更新、数据导入。
简
输入极简指令,直达核心。摒弃繁杂界面更纯粹。
动
自动化脚本,批量处理。减少重复劳动随风而去。
始
万物之源下载 (Download)
选择离你最近的源下载 wp-cli.phar 文件。以下自选其一。
赋权 (Permission)
赋予文件可执行权限,使其成为可运行的程序。
归位 (Move)
将文件移动到系统路径,并重命名为 wp。
验证 (Verify)
确认安装成功。
下载 (Download)
下载 wp-cli.phar 到你的项目根目录。
配置 (Configure)
在同一目录下创建 wp.bat 文件。
路径 (Path)
将该目录添加到系统的环境变量 PATH 中。
验证 (Verify)
打开新的命令行窗口验证。
技
日常之修炼智
未来之演进当命令行遇上人工智能,WP-CLI 不再只是工具,而是你的智能助手。 通过 AI 赋能,实现自然语言控制、代码自动生成与智能故障诊断。
自然语言交互
告别繁琐参数,直接告诉它你想做什么。
智能代码生成
自动生成插件样板代码、自定义文章类型注册代码。
故障自动诊断
智能分析日志,快速定位错误根源并给出修复建议。
配
运筹于帷幄通过 wp-cli.yml 配置文件,您可以定义全局参数、注册命令别名,甚至管理远程站点。
全局配置
一次配置,处处生效。省去重复输入参数的烦恼。
path: web/wp
url: http://example.com
user: admin
disabled_commands:
- db drop
- plugin install
远程别名 (Aliases)
在本地机器上,直接操控远程服务器的 WordPress 站点。
@prod:
ssh: user@prod-server/var/www/html
@dev:
ssh: user@dev-server/var/www/html
深
自动化之道精通 WP-CLI 不仅仅是掌握单个命令,更在于将其融入自动化工作流。 这里有一些进阶的脚本与配置示例。
如果您管理着多个 WordPress 站点,可以编写一个简单的 Bash 脚本来遍历目录并更新所有站点。
#!/bin/bash
# 假设所有站点都在 /var/www/html/ 下
for dir in /var/www/html/*/; do
echo "Updating $dir..."
cd "$dir"
# 检查是否是 WordPress 目录
if wp core is-installed --allow-root; then
# 更新核心、插件和主题
wp core update --allow-root
wp plugin update --all --allow-root
wp theme update --all --allow-root
echo "Done."
else
echo "Not a WordPress install. Skipping."
fi
done
WordPress 默认的 Cron 依赖页面访问触发,不仅不稳定还影响性能。建议禁用它,改用系统的 Crontab。
1. 在 wp-config.php 中禁用默认 Cron:
2. 在服务器的 crontab 中添加任务(每分钟执行一次):
配合 Redis 或 Memcached,WP-CLI 可以帮助您管理对象缓存,极大提升动态页面加载速度。
在 WordPress 多站点网络中,逐个站点执行命令非常繁琐。结合 xargs 可以实现一行代码管理整个网络。
使用 profile 扩展包,您可以深入分析 WordPress 启动过程中的性能瓶颈,精确到毫秒级的钩子 (Hook) 执行时间。
将 WP-CLI 集成到自动化部署流程中。以下是一个 GitHub Actions 的示例,用于在部署前检查代码标准。
name: WP Check
on: [push]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
tools: wp-cli
- name: Install WP
run: |
wp core download
wp config create --dbname=test --dbuser=root --dbpass=root
- name: Verify Checksums
run: wp core verify-checksums
只需几行 PHP 代码,就能让 WP-CLI 为你所用。创建一个简单的命令来输出 "Hello World"。
// command.php
if ( defined( 'WP_CLI' ) && WP_CLI ) {
$command = function( $args, $assoc_args ) {
$name = $assoc_args['name'] ?? 'World';
WP_CLI::success( "Hello, $name!" );
};
WP_CLI::add_command( 'hello', $command );
}
# 运行方式:
# wp --require=command.php hello --name=Zen
例
实战之演练理论终须实践检验。以下是两个真实的运维场景,展示 WP-CLI 如何化繁为简,解决棘手问题。
场景一:网站被黑,快速恢复
紧急某天早上,你发现网站被植入了恶意代码,且无法登录后台。此时 WP-CLI 是你的救命稻草。
快速找出被篡改的核心文件。
不删除 `wp-content`,仅覆盖核心文件,清除后门。
列出管理员,发现可疑账号立即删除。
场景二:数万篇文章批量修改
优化你需要将所有文章中的旧域名 "old-site.com" 替换为 "new-site.com",且不能破坏序列化数据。
先看看会影响多少行数据,确保心中有数。
为了安全,建议先导出 SQL,再执行替换。
确保前台立即生效。
场景三:站点健康与安全审计
日常未雨绸缪胜过亡羊补牢。建立一套自动化的审计流程,定期检查站点是否存在潜在风险。
过期的插件往往是安全漏洞的重灾区。
确保没有文件被偷偷修改。
定期审查拥有最高权限的账户列表。
解
疑惑之微光这是 PHP 内存限制导致的。您可以临时增加内存限制运行命令:
出于安全考虑,不建议以 root 身份运行 WP-CLI。如果必须这样做,请添加 --allow-root 参数:
您可以使用 --debug 参数查看详细的执行日志。如果怀疑是插件冲突,可以添加 --skip-plugins 参数暂时禁用所有插件运行命令。
非常安全。WP-CLI 能够智能处理 PHP 序列化数据(Serialized Data),这是直接使用 SQL 语句无法做到的。建议在操作前使用 --dry-run 进行预演。
WP-CLI 提供了自更新命令,您可以一键升级到最新稳定版:
您可以直接使用指定版本的 PHP 可执行文件来运行 WP-CLI Phar 包:
请首先检查 wp-config.php 中的数据库凭据是否正确。您也可以尝试使用 wp db check 命令来诊断数据库连接问题。
广
生态之延伸WP-CLI 的力量不仅于此。通过包管理器,您可以安装社区贡献的命令,甚至编写自己的扩展。
wp doctor
为您的 WordPress 进行全面体检,发现潜在配置问题。
wp profile
剖析页面加载过程,精准定位性能瓶颈(慢查询、钩子耗时)。
wp shell
内置的 REPL 环境,像 Python Shell 一样实时执行 PHP 代码。
wp i18n
国际化工具集。生成 POT 文件、转换 PO/MO 文件。
脚手架 (Scaffold)
快速生成标准化的 WP-CLI 命令包结构,开始您的扩展开发之旅。
单元测试
为您的插件或主题生成 PHPUnit 测试文件。
亦可随风潜入夜:composer require wp-cli/wp-cli-bundle