配置

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

# `--user=<user>` sets request to a specific WordPress user
$ wp --user=wpcli eval 'echo wp_get_current_user()->user_email;'
wpcli@example.com

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

# WordPress develop includes a `wp-cli.yml` to enable easy use of 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 插件仍然加载。

默认值:""

--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>

要禁用的(子)命令。

默认值:[]

不用作标志

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

# Global parameter defaults
path: wp-core
url: http://example.com
user: admin
color: false
disabled_commands:
  - db drop
  - plugin install
require:
  - path-to/command.php

# Subcommand defaults (e.g. `wp config create`)
config create:
    dbuser: root
    dbpass: 
    extra-php: |
        define( 'WP_DEBUG', true );
        define( 'WP_POST_REVISIONS', 50 );

# Aliases to other WordPress installs (e.g. `wp @staging rewrite flush`)
# An alias can include 'user', 'url', 'path', 'ssh', or '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

# Aliases can reference other aliases to create alias groups
# Alias groups can be nested
@both:
 - @staging
 - @production

# '_' is a special value denoting configuration options for this wp-cli.yml
_:
    # Merge subcommand defaults from the upstream config.yml, instead of overriding
    merge: true
    # Inherit configuration from an arbitrary YAML file
    inherit: prod.yml

环境变量

WP-CLI 的行为可以通过使用环境变量在运行时更改:

  • WP_CLI_CACHE_DIR– 存储 WP-CLI 文件缓存的目录。默认值为 。~/.wp-cli/cache/
  • WP_CLI_CONFIG_PATH– 全局文件的路径。默认值为 。config.yml``~/.wp-cli/config.yml
  • WP_CLI_CUSTOM_SHELL– 允许用户覆盖使用的默认外壳。/bin/bash
  • WP_CLI_DISABLE_AUTO_CHECK_UPDATE– 禁用 WP-CLI 自动检查更新。
  • WP_CLI_PACKAGES_DIR–用于存储通过WP-CLI的软件包管理安装的软件包的目录。默认值为 。~/.wp-cli/packages/
  • WP_CLI_PHP– 覆盖系统默认值时使用的 PHP 二进制路径(仅适用于非 Phar 安装)。
  • WP_CLI_PHP_ARGS– 调用 WP-CLI 时传递给 PHP 二进制文件的参数(仅适用于非 Phar 安装)。
  • WP_CLI_SSH_PRE_CMD– 使用 时,在远程服务器上的 WP-CLI 调用 WP-CLI 之前执行命令。--ssh=<ssh>
  • WP_CLI_STRICT_ARGS_MODE– 通过告诉 WP-CLI 将命令之前的任何参数视为全局参数,将命令之后的任何参数视为本地参数来避免歧义。
  • WP_CLI_SUPPRESS_GLOBAL_PARAMS– 设置为 跳过在帮助屏幕末尾显示全局参数。这将为高级用户节省屏幕空间。true

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

# Use vim to edit a post
$ EDITOR=vim wp post edit 1

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

# Always use vim to edit a post
export EDITOR=vim