我们的 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= ] [--dbcollat​​e= ] [--语言环境= ] [--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的帮助文本,我们看到formatfields参数以双破折号为前缀。 这就是我们知道它们是该命令的命名参数的方式。

订购真的没关系:

 # 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 中的路径:

您可以通过在存储库中查看插件的 URL 来查看插件的 slug,但 WP-CLI 提供了更优雅的解决方案。

它可以工作,但它缺乏技巧并将您带出终端。 这是使用 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 相关的内容有任何疑问,请在评论中告诉我。