我们的 WP-CLI 命令结构指南
已发表: 2022-06-29
WordPress 命令行界面 (WP-CLI) 是用于改进开发工作流程的绝佳工具。 了解命令的结构是充分发挥 WP-CLI 潜力的关键。 在本文中,您将学习如何构建 WP-CLI 命令,包括如何使用父命令和子命令,以及参数和开关。
在开始创建命令之前,您需要安装 WP-CLI。 确切的方法因操作系统而异,但我们的安装和配置 WP-CLI 指南包含您需要的一切。
父命令和子命令
几乎所有 WP-CLI 命令的结构都相同。 每个更大的功能区域都有一个父命令,例如用于处理核心 WordPress 安装的wp core
。 这些父命令中的每一个都可以与许多不同的子命令一起使用,并且必须至少与一个子命令一起使用。
家长命令奠定基础
没有父命令本身会做任何有用的事情。 例如,如果您尝试单独使用wp config
,您将看到如下内容:
~$ wp 配置 用法: wp config create --dbname=--dbuser= [--dbpass= ] [--dbhost= ] [--dbprefix= ] [--dbcharset= ] [--dbcollate= ] [--语言环境= ] [--extra-php] [--skip-salts] [--skip-check] [--force] [--config-file= ] [--不安全] 或: wp 配置删除 [--类型= ] [--配置文件= ] 或: wp config 编辑 [--config-file= ] 或: wp 配置获取 [--类型= ] [--格式= ] [--配置文件= ] 或: wp 配置有 [--类型= ] [--配置文件= ] 或: wp 配置列表 [ ...] [--字段= ] [--格式= ] [--strict] [--config-file= ] 或: wp 配置路径 或: wp 配置集 [--add] [--raw] [--anchor= ] [--放置= ] [--分隔符= ] [--类型= ] [--配置文件= ] 或: wp config shuffle-salts [ ...] [--force] [--config-file= ] [--不安全] 有关特定命令的更多信息,请参见“wp help config”。
仅此一项就为您提供了一些关于如何使用wp config
命令的很好的线索。 您可以通过遵循其建议并输入wp help config
来获得更好的理解。
姓名 wp配置 描述 生成并读取 wp-config.php 文件。 概要 wp配置子命令 create 生成一个 wp-config.php 文件。 delete 从 wp-config.php 文件中删除特定的常量或变量。 edit 启动系统编辑器以编辑 wp-config.php 文件。 get 获取 wp-config.php 文件中定义的特定常量或变量的值。 has 检查 wp-config.php 文件中是否存在特定常量或变量。 list 列出 wp-config.php 文件中定义的变量、常量和文件包含。 path 获取 wp-config.php 文件的路径。 set 设置 wp-config.php 文件中定义的特定常量或变量的值。 shuffle-salts 刷新 wp-config.php 文件中定义的盐。 全局参数 --路径=
核心 WP-CLI 安装中总共有 40 多个父命令。 一些流行的插件,如 WooCommerce 和 BuddyPress,添加了自己的父命令,因此您的 WordPress 安装可能会有更多。 在大多数情况下,您可以通过输入wp help
后跟父命令的名称来了解如何使用该命令。
了解它们的分组方式有助于学习使用 WP-CLI。 值得注意的是,WP-CLI 命令几乎总是在命令中使用单数名词。 例如,用于用户管理的父命令名为wp user
而不是“wp users”。 只要你记住这一点,你就会发现你的直觉往往是正确的。 实际上,管理评论的命令是wp comment
,而wp cron
是您用于管理 WP-Cron 日程安排和事件的命令。
您可以在下面找到一些最常用的父命令的备忘单。
命令 | 描述 |
---|---|
wp核心 | 使用 WordPress 安装。 |
wp配置 | 生成和读取 wp-config.php。 |
wp插件 | 管理插件。 |
wp主题 | 管理主题。 |
wp用户 | 管理用户。 |
wp媒体 | 处理图像和其他媒体文件 |
wp帮助 | 一般帮助。 使用命令跟进以获取更具体的信息。 |
wp选项 | 设置站点选项,包括插件和 WordPress 选项。 |
wp网站 | 在多站点安装上管理站点。 |
子命令给出方向
正如我之前提到的,这些命令都不是真正独立工作的。 如果我们要去任何地方,我们还需要指定一个子命令。 我强烈建议设置选项卡完成。 这将允许您轻松查看子命令。 例如,使用 tab 补全我们可以看到plugin
的子命令:
$ wp plugin [TAB] activate get list toggle auto-updates install path uninstall deactivate is-active search update delete is-installed status verify-checksums
在不指定子命令的情况下按 enter 将提示 WP-CLI 提供一些额外的帮助:
$ wp plugin usage: wp plugin activate [<plugin>...] [--all] [--network] or: wp plugin auto-updates <command> or: wp plugin deactivate [<plugin>...] [--uninstall] [--all] [--network] or: wp plugin delete [<plugin>...] [--all] or: wp plugin get <plugin> [--field=<field>] [--fields=<fields>] [--format=<format>] or: wp plugin install <plugin|zip|url>... [--version=<version>] [--force] [--activate] [--activate-network] [--insecure] ....
注意到上面帮助文本中参数的显示方式有所不同吗? 有些封装在< >
标记中,有些则以双破折号--
为前缀。 这不是巧合。 它们是不同类型的参数。 我们稍后再谈。
WP-CLI 很好用,因为它通常能够告诉你更多关于每个子命令和它期望的参数的信息。 这在所有内置的 WP-CLI 命令中都非常一致。 每当您未能键入具有所有预期参数的完整命令时,它会告诉您更多关于它所期望的信息。
WP-CLI 常用命令备忘单
下面的备忘单显示了一些更常见的子命令及其附带的父命令。 可用的子命令比此处列出的要多得多。 一些父命令,例如wp comment
,有十几个子命令,而其他命令,例如wp cron
,只有几个。
WP核心
命令 | 描述 |
---|---|
wp核心下载 | 下载 WordPress 核心文件。 |
wp核心安装 | 安装 WordPress。 |
wp核心更新 | 将 WordPress 更新到较新的版本。 |
WP配置
命令 | 描述 |
---|---|
wp配置创建 | 创建一个新的 `wp-config.php` 文件。 |
wp配置编辑 | 启动系统编辑器以编辑配置文件。 |
wp核心更新 | 显示在 `wp-config.php` 文件中定义的变量、常量和文件包含。 |
WP主题
命令 | 描述 |
---|---|
wp主题安装 | 安装主题。 |
wp主题激活 | 激活主题。 |
wp主题自动更新 | 管理自动更新。 |
wp主题停用 | 停用选定的主题。 |
WP插件
命令 | 描述 |
---|---|
wp插件安装 | 安装主题。 |
wp插件激活 | 激活插件。 |
wp插件自动更新 | 管理自动更新。 |
wp插件停用 | 停用选定的插件。 |
参数和开关
除了父命令和子命令之外,大多数命令至少需要一个参数才能执行一些有用的操作。 例如,如果要安装插件,则需要指定要安装的插件。 当然,激活或删除插件也是如此。

您将在 WP-CLI 中使用三种类型的参数:有序参数、命名参数和开关。
有序参数
如果一个命令需要多个常规参数,它们总是必须正确排序才能使命令起作用。 这就是为什么它们被称为有序参数。 它们总是由一个空格隔开。 如果参数值本身包含空格,则需要用引号括起来。
在命令的帮助文本中,有序参数由<
和>
包围。 在以下尝试使用wp post get
不带任何参数的示例中,我们看到id
是一个有序参数,因为它包含在<
和>
中。
$ wp post get usage: wp post get <id> [--field=<field>] [--fields=<fields>] [--format=<format>]
命名参数
WP-CLI 也适用于命名参数。 这些可以按任何顺序给出。 命名参数通过名称前的双破折号以及名称和值之间的等号来识别。
例如,查看上面wp post get
的帮助文本,我们看到format
和fields
参数以双破折号为前缀。 这就是我们知道它们是该命令的命名参数的方式。
订购真的没关系:
# This will get the the title field for post id 1 in JSON format $ wp post get 1 --fields=title --format=json # This is the same command, order of named parameters doesn't matter: $ wp post get 1 --format=json --fields=title # This is also exactly the same, you can put named parameters before the ordered ones: $ wp post get --format=json --fields=title 1
开关
还有一些命名参数仅用于指示真/假类型值。 这些称为开关,不需要指定值。 如果将它们添加到命令行,它们将被理解为“真实”。 如果你省略它们,它们就是“假的”。
也许最好用几个例子来解释:
# Passing "hello-dolly" as regular ordered parameter $ wp plugin activate hello-dolly # Passing a regular ordered parameter with spaces requires quotes $ wp plugin search "WP Offload Media" # Passing the value 'json' to the named parameter 'format' $ wp plugin list --format=json # Setting the 'quiet' switch to true $ wp plugin activate hello-dolly --quiet
没那么复杂吧? 这在命令行工具中几乎是常态。 但是,让我们再添加一个小细节。
全局命名参数
在许多 WP-CLI 命令使用它们的意义上,命名参数可以是全局的,并且在使用时它们总是具有相同的行为。
其他命名参数仅对一个特定命令有意义。 这种类型的命名参数本质上只是一个命名参数。 在上面的示例中, --quiet
参数是全局的,因为它以相同的方式影响所有命令。 但是--format
参数不被认为是全局的,因为它对所有命令都没有意义。
如何使用 WP-CLI 命令
作为一个例子,让我们看看如何使用wp-plugin
来安装和激活一个 WordPress 插件。 除了管理用户,这是新的 WP-CLI 用户想要了解的第一个领域。 即使您对从命令行管理插件不是很感兴趣,也值得阅读本节以热身使用 WP-CLI。
从 WordPress 存储库安装新插件非常简单。 您需要一个父命令 ( wp plugin
)、一个子命令 ( install
) 和一个有序参数 (插件的官方 slug) 来安装插件。 激活插件使用类似的命令,但使用不同的子命令 ( activate
)。
将所有内容放在一起,您应该会看到如下内容:
# Installing a plugin $ wp plugin install hello-dolly Installing Hello Dolly (1.7.2) Downloading installation package from https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip... The authenticity of hello-dolly.1.7.2.zip could not be verified as no signature was found. Unpacking the package... Installing the plugin... Plugin installed successfully. Success: Installed 1 of 1 plugins. $ wp plugin activate hello-dolly Plugin 'hello-dolly' activated. Success: Activated 1 of 1 plugins.
如您所见,在 WP-CLI 中安装和激活插件是两个不同的事情,就像您使用 Web 界面安装插件时一样。 但是安装然后直接激活一个插件是如此普遍,以至于 WP-CLI 有办法同时做这两个:
# Installing AND activating a plugin in one go $ wp plugin install --activate hello-dolly
一个棘手的部分是为您想要的插件找到合适的 slug。 所有插件都由它们的官方 slug 标识,但在许多情况下,slug 甚至与插件的官方名称相差甚远。 广受欢迎的 Yoast SEO 插件有 slug wordpress-seo
。 我们自己的插件 WP Offload Media 的 slug 是amazon-s3-and-cloudfront
。
插件在插件首次被 WordPress 插件存储库接受时分配,并且是唯一的唯一标识符。 即使插件的名称更改,slug 保持不变。 您可以随时访问插件仓库网页,搜索插件并查看 URL 中的路径:
它可以工作,但它缺乏技巧并将您带出终端。 这是使用 WP-CLI 的search
子命令的正确方法:
wp plugin search "wp offload media" --per-page=1 --fields=name,slug Success: Showing 1 of 66 plugins. +-----------------------------------------------------------------------+--------------------------+ | name | slug | +-----------------------------------------------------------------------+--------------------------+ | WP Offload Media Lite for Amazon S3, DigitalOcean Spaces, and Google | amazon-s3-and-cloudfront | | Cloud Storage | | +-----------------------------------------------------------------------+--------------------------+
如果您想了解更多关于管理插件的信息,我们将在稍后关于 WP-CLI 的文章中深入探讨wp plugin
命令的所有细节。 现在我们只是将它用作演示使用参数的一种方式。
包起来
将 WP-CLI 集成到您的开发工作流程中,您将看到的最大好处可能就是它让您的工作速度提高了多少。 实际上,您可以从 WordPress 管理员执行的任何操作都可以使用命令行在更短的时间内完成。
一旦您了解了基础知识,您就可以通过我们的 WP-CLI 软件包列表进一步了解我们的 WP-CLI 包,我们离不开它。
了解命令、子命令和参数的结构是熟悉 WP-CLI 的关键。 我的目的是为您提供开始自己实验所需的基本知识。 如果您对如何构建 WP-CLI 命令、参数或任何其他与 WP-CLI 相关的内容有任何疑问,请在评论中告诉我。