WP-CLI 命令行手册

title: "配置" post_status: publish comment_status: open taxonomy: category: - wp-cli-handbook post_tag: - References - Repos - Data


配置

WP-CLI 拥有一系列适用于所有命令的全局参数(例如 --path=<path>--user=<user>)。它们被称为全局参数,因为它们影响 WP-CLI 与 WordPress 的交互方式,并且所有命令中的行为都相同。

# `--user=<user>` 将请求设置为特定的 WordPress 用户
$ wp --user=wpcli eval 'echo wp_get_current_user()->user_email;'
wpcli@example.com

对于重复使用,WP-CLI 还可以从 YAML 配置文件(例如 wp-cli.yml)中读取选项。WP-CLI 会根据下面定义的规则自动发现文件系统中的配置文件。这些配置文件可以指定全局参数和子命令特定参数的默认值。

# WordPress develop 包含一个 `wp-cli.yml` 文件,以便轻松使用 WP-CLI
$ pwd
/srv/www/wordpress-develop.dev
$ cat wp-cli.yml
path: src/

参数按照优先级顺序解释,从最高优先级到最低优先级:

  1. 命令行参数。
  2. 当前工作目录(或向上)中的 wp-cli.local.yml 文件。
  3. 当前工作目录(或向上)中的 wp-cli.yml 文件。
  4. ~/.wp-cli/config.yml 文件(路径可以通过设置 WP_CLI_CONFIG_PATH 环境变量来更改)。
  5. WP-CLI 默认值。

全局参数

下表列出了可用的 参数(在命令行中指定)和 选项(在配置文件中指定)。

描述 参数 选项
WordPress 文件的路径。
默认值:null
--path=<path> path: <path>
通过 SSH 对远程服务器执行操作。
默认值:null
--ssh=[<user>@]<host>[:<port>][<path>] ssh: [<user>@]<host>[:<port>][<path>]
通过 HTTP 对远程 WordPress 安装执行操作。
默认值:null
--http=<http> http: <http>
伪装请求来自给定的 URL。在多站点中,此参数用于指定目标站点。
默认值:null
--url=<url> url: <url>
设置 WordPress 用户。
默认值:null
--user=<id|login|email> user: <id|login|email>
跳过加载所有或部分插件。注意:mu-plugins 仍会被加载。
默认值:""
--skip-plugins[=<plugin>] skip-plugins: <list>
跳过加载所有或部分主题。
默认值:""
--skip-themes[=<theme>] skip-themes: <list>
跳过加载所有已安装的包。
默认值:false
--skip-packages skip-packages: <bool>
在运行命令前加载 PHP 文件(可多次使用)。
默认值:[]
--require=<path> require: <path>
在运行命令前执行 PHP 代码(可多次使用)。
默认值:[]
--exec=<php-code> exec: <php-code>
在给定的上下文中加载 WordPress。
默认值:auto
--context[=<context>] context: <context>
要禁用的(子)命令。
默认值:[]
不作为标志使用 disabled_commands: <list>
是否对输出进行着色。
默认值:"auto"
--[no-]color color: <bool>
显示所有 PHP 错误;增加 WP-CLI 引导的详细程度。
默认值:false
--debug[=<group>] debug: <group>
提示用户输入所有命令参数的值,或输入以逗号分隔的指定子集的值。
默认值:false
--prompt[=<assoc>] 不作为选项使用
抑制信息性消息。
默认值:false
--quiet quiet: <bool>
要报告为已加载的 Apache 模块列表。
默认值:[]
不作为标志使用 apache_modules: <list>

配置文件

WP-CLI 可以自动发现并读取几种配置文件类型中的选项(当它们存在时):

  1. 当前工作目录(或上级目录)中的 wp-cli.local.yml 文件。
  2. 当前工作目录(或上级目录)中的 wp-cli.yml 文件。
  3. ~/.wp-cli/config.yml 文件(路径可以通过设置 WP_CLI_CONFIG_PATH 环境变量来更改)。

除了上述全局参数外,配置文件还可以包含任何子命令的默认值,以及指向一个或多个 WordPress 安装的别名。

以下是一个带注释的 wp-cli.yml 文件示例:

# 全局参数默认值
path: wp-core
url: http://example.com
user: admin
color: false
disabled_commands:
  - db drop
  - plugin install
require:
  - path-to/command.php

# 子命令默认值(例如 `wp config create`)
config create:
    dbuser: root
    dbpass: 
    extra-php: |
        define( 'WP_DEBUG', true );
        define( 'WP_POST_REVISIONS', 50 );

# 指向其他 WordPress 安装的别名(例如 `wp @staging rewrite flush`)
# 别名可以包含 'user'、'url'、'path'、'ssh' 或 'http'
@staging:
    ssh: wpcli@staging.wp-cli.org
    user: wpcli
    path: /srv/www/staging.wp-cli.org
@production:
    ssh: wpcli@wp-cli.org:2222
    user: wpcli
    path: /srv/www/wp-cli.org

# 别名可以引用其他别名以创建别名组
# 别名组可以嵌套
@both:
 - @staging
 - @production

# '_' 是一个特殊值,表示此 wp-cli.yml 的配置选项
_:
    # 合并来自上游 config.yml 的子命令默认值,而不是覆盖
    merge: true
    # 从任意 YAML 文件继承配置
    inherit: prod.yml

Remote (SSH) configuration

Using the ssh option, WP-CLI can be configured to run on a remote system rather than the current system. Along with the SSH protocol, WP-CLI also supports connecting to Docker containers (including docker-compose) and Vagrant VMs.

The connection type can be passed via the scheme of the --ssh parameter or ssh option.

Supported types are:

All connection types support an optional path suffix to specify a directory to cd to before running WP-CLI; path is a full system path starting with either / or ~. (If WP_CLI_SSH_PRE_CMD is specified, cd is run after this pre-command.)

The SSH connection type also supports two advanced connection configuration options, which must be specified via an alias in the YAML configuration:

See the documentation about running WP-CLI commands remotely for more information.

上下文配置

在 WP-CLI v2.6.0 版本中,新增了一个全局标志 --context=<context>,允许用户选择 WP-CLI 执行命令时所处的 WordPress 上下文环境。

其主要目标之一是让 WP-CLI 能够更新高级插件和主题,而无需任何特殊设置。根据我们的初步测试,这使得大量流行的高级扩展在更新流程方面能够与 WP-CLI 直接兼容™。

该标志的可能取值:

在初始版本(v2.6.0)中,--context 标志默认设置为 cli。在 WP-CLI v2.7.0 及更高版本中,默认值已更改为 auto。这种渐进式部署允许主机服务商和网站所有者在默认行为更改之前,通过手动设置上下文来对 v2.6.0 版本进行测试。

如果您仍在使用 WP-CLI v2.6.0 但希望使用 --context=auto 的默认设置,可以通过在全局 wp-cli.yml 配置文件中添加必要的 context: auto 行来实现。如果您对此不熟悉,请随时查阅关于 WP-CLI 配置文件 的文档。

环境变量

WP-CLI 的行为可以通过环境变量在运行时进行修改:

要按需设置环境变量,只需将环境变量定义放在要运行的 WP-CLI 命令之前。

# 使用 vim 编辑文章
$ EDITOR=vim wp post edit 1

要为每个 shell 会话设置相同的环境变量值,您需要将环境变量定义包含在您的 ~/.bashrc~/.zshrc 文件中。

# 始终使用 vim 编辑文章
export EDITOR=vim