WP-CLI 是 WordPress 的命令行接口。无需使用浏览器,你即可更新插件、配置多站点安装以及完成更多操作。
持续维护由以下机构赞助:
当前稳定版本为 2.12.0。获取公告可关注 Twitter 上的 @wpcli 或 订阅邮件更新。前往路线图查看未来版本的规划概览。
快速链接:使用 | 安装 | 支持 | 扩展 | 贡献 | 致谢
使用
WP-CLI 为许多你可能在 WordPress 管理后台执行的操作提供了命令行界面。例如,wp plugin install --activate(文档)可以让你安装并激活一个 WordPress 插件:
$ wp plugin install user-switching --activate
Installing User Switching (1.0.9)
Downloading installation package from https://downloads.wordpress.org/plugin/user-switching.1.0.9.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Activating 'user-switching'...
Plugin 'user-switching' activated.
Success: Installed 1 of 1 plugins.
WP-CLI 也包含许多你无法在后台直接完成的命令。例如,wp transient delete --all(文档)可以删除一个或所有 transient(临时缓存):
$ wp transient delete --all
Success: 34 transients deleted from the database.
如需更完整的使用介绍,请阅读快速入门指南。或者,查看shell friends学习常用的命令行工具。
已经熟悉基础?前往完整命令列表获取关于管理主题与插件、数据导入导出、执行数据库搜索替换等的详细信息。
安装
对于大多数用户,我们推荐通过下载 Phar 文件的方式安装。必要时也可以参阅其它安装方法(Composer、Homebrew、Docker)。
在安装 WP-CLI 之前,请确保你的环境满足以下最低要求:
- 类 UNIX 环境(OS X、Linux、FreeBSD、Cygwin);Windows 环境支持有限
- PHP 5.6 或更高版本
- WordPress 3.7 或更高版本。低于最新版的 WordPress 可能会有功能退化
确认满足要求后,使用 wget 或 curl 下载 wp-cli.phar 文件:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
接着,检查 Phar 文件以确认其是否可用:
php wp-cli.phar --info
若希望在命令行中通过 wp 使用 WP-CLI,请将该文件设为可执行并移动到 PATH 中的某个位置。例如:
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
如果 WP-CLI 安装成功,运行 wp --info 应看到类似如下的输出:
$ wp --info
OS: Linux 5.10.60.1-microsoft-standard-WSL2 #1 SMP Wed Aug 25 23:20:18 UTC 2021 x86_64
Shell: /usr/bin/zsh
PHP binary: /usr/bin/php8.1
PHP version: 8.1.0
php.ini used: /etc/php/8.1/cli/php.ini
MySQL binary: /usr/bin/mysql
MySQL version: mysql Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
SQL modes:
WP-CLI root dir: /home/wp-cli/
WP-CLI vendor dir: /home/wp-cli/vendor
WP_CLI phar path:
WP-CLI packages dir: /home/wp-cli/.wp-cli/packages/
WP-CLI global config:
WP-CLI project config: /home/wp-cli/wp-cli.yml
WP-CLI version: 2.12.0
更新
你可以通过 wp cli update(文档)更新 WP-CLI,或重复安装步骤进行更新。
如果 WP-CLI 由 root 或其他系统用户拥有,你需要运行 sudo wp cli update。
想体验前沿版本?运行 wp cli update --nightly 以使用最新的每夜构建。每夜构建在开发环境中总体上足够稳定,并且始终包含最新与最棒的 WP-CLI 功能。
Tab 自动补全
WP-CLI 还提供适用于 Bash 与 ZSH 的 Tab 补全脚本。只需下载 wp-completion.bash 并在 ~/.bash_profile 中进行 source:
source /FULL/PATH/TO/wp-completion.bash
别忘了随后运行 source ~/.bash_profile。
如果你的 shell 使用 zsh,在 source 之前可能需要加载并启动 bashcompinit。将以下内容放入你的 .zshrc:
autoload bashcompinit
bashcompinit
source /FULL/PATH/TO/wp-completion.bash
支持
WP-CLI 的维护者与贡献者在处理一般支持问题上的时间有限。WP-CLI 的当前版本是唯一官方支持的版本。
在寻找支持时,请先在以下渠道搜索你的问题:
- 常见问题与解决方案
- WP-CLI 手册
- WP-CLI 组织下的 GitHub 问题(开放或已关闭)
- WordPress.org 论坛中标记为“WP-CLI”的讨论串
- WordPress StackExchange 上标记为“WP-CLI”的问题
如果在上述渠道仍未找到答案,你可以:
- 加入 WordPress.org Slack 的
#cli频道,与当时在线的社区成员交流。该选项最适合快速问题。 - 在 WordPress.org 支持论坛发布新帖,并添加“WP-CLI”标签,以便被社区看到。
GitHub issue 用于跟踪现有命令的增强与缺陷,而不是一般支持。提交缺陷报告之前,请先阅读我们的最佳实践,以帮助确保你的问题能得到及时处理。
请不要在 Twitter 上提出支持问题。Twitter 并非合适的支持渠道,因为:1)在 280 个字符内难以进行对话;2)Twitter 不是一个可以让有相同问题的人检索以往对话的地方。
请记住,libre != gratis;开源许可赋予你使用与修改的自由,但并不意味着他人的时间承诺。请保持尊重,并合理设置你的期望。
扩展
命令 是 WP-CLI 功能的原子单位。wp plugin install(文档)是一个命令,wp plugin activate(文档)是另一个命令。
WP-CLI 支持将任意可调用的类、函数或闭包注册为命令。它会从回调的 PHPDoc 中读取用法细节。WP_CLI::add_command()(文档)既用于内部命令也用于第三方命令的注册。
/**
* Delete an option from the database.
*
* Returns an error if the option didn't exist.
*
* ## OPTIONS
*
* <key>
* : Key for the option.
*
* ## EXAMPLES
*
* $ wp option delete my_option
* Success: Deleted 'my_option' option.
*/
$delete_option_cmd = function( $args ) {
list( $key ) = $args;
if ( ! delete_option( $key ) ) {
WP_CLI::error( "Could not delete '$key' option. Does it exist?" );
} else {
WP_CLI::success( "Deleted '$key' option." );
}
};
WP_CLI::add_command( 'option delete', $delete_option_cmd );
WP-CLI 自带数十个命令。创建自定义 WP-CLI 命令并没有看起来那么难。阅读命令手册了解更多。浏览内部 API 文档,发现可在自定义命令中使用的多种辅助函数。
贡献
感谢你主动为 WP-CLI 做出贡献。正因为有你以及你周围的社区,WP-CLI 才能成为如此优秀的项目。
贡献不局限于代码。 我们鼓励你以最适合自己能力的方式贡献,比如撰写教程、在本地聚会上进行演示、帮助其他用户解决支持问题,或完善我们的文档。
请阅读手册中的贡献指南,以全面了解你可以如何参与。遵循这些指南能传达你尊重项目其他贡献者时间的态度。相应地,他们也会尽力在与你合作时回馈这种尊重,不论时区与地域。
管理者
WP-CLI 项目维护者: schlessera。
在特定情况下,我们会授予贡献者写入权限,前提是他们在一段时间内证明了自己有能力并致力于推动项目前进。
请阅读手册中的治理文档,了解项目的更多运作细节。
致谢
除了在 composer.json 中定义的库之外,我们还使用或借鉴了以下项目的代码或思想:
- Drush
- wpshell(用于
wp shell) - Regenerate Thumbnails(用于
wp media regenerate) - Search-Replace-DB(用于
wp search-replace) - WordPress-CLI-Exporter(用于
wp export) - WordPress-CLI-Importer(用于
wp import) - wordpress-plugin-tests(用于
wp scaffold plugin-tests)
