# WP-CLI v0.21.0  发行说明

*Published:* 2015-11-04
*Author:* 壳壳虫

这周已经相当疯狂，还只是星期三。

正如你们中的许多人所知，我在星期一晚上启动了一项 Kickstarter 众筹活动：更加 RESTful 的 WP-CLI[2](#0d20be9d)。令人难以置信的是，它在不到12小时内就完成了100%的筹款。点击链接查看有关我将在2016年初开展的更多详细信息。

但是，我有一个更加**重要的说明**，涉及支持的 WordPress 版本：

- WP-CLI v0.22.0（下一个版本）将将最低支持的 WordPress 版本从3.5提高到3.7（背景信息）。
- WP-CLI版本在0.20.3之前将与WordPress 4.4不兼容（背景信息）。

这个重要说明可能与您有关，请相应采取行动。

WP-CLI v0.21.0解决了109个问题和拉取请求。以下是新内容。

### 使用`WP_CLI::get_runner()->load_wordpress();`加载WordPress

现在，您可以通过将`@when before_wp_load`添加到您的命令文档来在WordPress加载之前运行WP-CLI命令一段时间了。现在，您可以使用相同的命令加载WordPress。

查看`wp eval`如何使用`WP_CLI::get_runner()->load_wordpress()`：

```
class Eval_Command extends WP_CLI_Command {

    /**
     * 执行任意的PHP<sup class="fn" data-fn="767c1e36"><a href="#767c1e36" id="767c1e36-link">3</a></sup>代码。
     *
     * &lt;php-code&gt;
     * : 要执行的代码，作为字符串。
     *
     * [--skip-wordpress]
     * : 在不加载WordPress的情况下执行代码。
     *
     * @when before_wp_load
     *
     * ## 示例
     *
     *     wp eval 'echo WP_CONTENT_DIR;'
     */
    public function __invoke( $args, $assoc_args ) {
        if ( null === Utilsget_flag_value( $assoc_args, 'skip-wordpress' ) ) {
            WP_CLI::get_runner()->load_wordpress();
        }
        eval( $args[0] );
    }
}

```

使用`wp eval --skip-wordpress `来执行`PHP`而不加载WordPress。或者，使用`wp eval-file --skip-wordpress `，例如，执行一个快速而不需要WordPress安装的脏脏脏脏脏脏。

类似地，当您使用`wp core verify-checksums`与`--version=`时，WP-CLI将检查以确保`core`文件未被修改，而无需加载WordPress。

创建这个新功能几乎就像更换行驶中的汽车引擎。

### 使用`--debug`获得更多详细信息

当您提供`--debug`标志时，您将获得更多关于WP-CLI执行您的命令的上下文信息。

之前：

```
$ wp option get home --debug
http://wordpress-test.dev

```

之后：

```
$ wp option get home --debug
Debug: 使用默认全局配置：/home/vagrant/.wp-cli/config.yml（0.026s）
Debug: 未找到项目配置（0.027s）
Debug: 从配置中获取所需文件：/srv/www/wp-rest-cli/wp-rest-cli.php（0.059s）
Debug: 定义了ABSPATH：/srv/www/wordpress-test.dev/（0.06s）
Debug: 开始加载WordPress（0.063s）
Debug: wp-config.php路径：/srv/www/wordpress-test.dev/wp-config.php（0.065s）
Debug: 设置URL<sup class="fn" data-fn="7a49a331"><a href="#7a49a331" id="7a49a331-link">4</a></sup>：wordpress-test.dev/（0.066s）
Debug: 已加载WordPress（0.515s）
Debug: 正在运行命令：option get（0.516s）
http://wordpress-test.dev

```

通过在关键检查点包含`WP_CLI::debug( $debug_message );`，可以使您的命令更加有帮助。

### v0.21.0的其他变化

增强功能：

- 使用`wp core update-db --network`来升级整个网络中的数据库；还通过提供`from`和`to`数据库版本来改善此命令的详细程度。
- 添加`wp comment recount`命令以重新计算文章的评论数。
- 包括`wp taxonomy list`、`wp taxonomy get`、`wp post-type list`和`wp post-type get`以获取关于已注册的分类和文章类型的详细信息。
- 使用`wp post update`或`wp post delete`时，使用`--defer-term-counting`在操作结束时重新计算术语计数，以提高性能。
- 在使用无效的plugin slug运行`wp scaffold plugin-tests`时返回更有用的错误消息。
- 在`wp theme list`中，通过设置`status=parent`来表示父母主题。这更清晰地区分了真正不活动的主题与被用作父母主题的“不活动”主题。
- 尝试在multisite安装上使用`wp rewrite flush --hard`时显示错误消息，因为WordPress不为多站点安装生成`.htaccess`文件。
- 允许`wp core download`使用`--path`，即使检测到WP。这允许自定义WP-CLI命令在现有WP安装范围内从子目录下载WP。
- 为`wp export`添加`--post_type__not_in`参数，现在可以生成一个不包括`feedbacks`等内容的导出文件。
- 支持使用`wp export --post__in`的空格分隔的ID。这使得更容易传递`wp post list --format=ids`返回的ID。
- 在使用`wp scaffold plugin`时包括一个`.editorconfig`。
- 新生成的`install-wp-tests.sh`文件支持`$WP_VERSION=trunk`或`$WP_VERSION=nightly`，以便对WordPress trunk运行您的插件测试。
- 在`wp core multisite-convert`中，当`wp-config.php`不可写时为用户提供更有用的错误消息。
- 当无效的子命令具有有效的父命令时，为用户提供更有帮助的错误消息。
- 在警告并要求确认后，支持在由APC缓存支持的WordPress实例上使用WP-CLI。
- 如果WP-CLI是较大的Composer[1](#07129516)项目的一部分，则sniffs出自定义供应商路径。
- 不再需要通用参数`wp post create`和`wp comment create`，可以在不提供标题等信息的情况下使用这些命令。
- 接受没有右侧数据的关联参数。
- 在查找具有`wp cli update`的PHP二进制文件时，耗尽所有可能的选项。以前，WP-CLI会尝试直接调用`php`，但在PHP未公开为这样的系统上会失败。
- 根据WordPress版本，接受`wp_new_user_notification()`的弃用第二个参数。

您可以在Github上浏览已解决问题的完整列表。

此版本的贡献者：aaemnnosttv、borekb、danielbachhuber、gmcinnes、JRGould、johnbillion、kraftbj、miya0001、ntwb、rodrigoprimo、rmccue szepeviktor、torounit、voldemortensen、ypid

### 名词解释

1. Composer：PHP 的依赖管理工具 [↩︎](#07129516-link)
2. WP-CLI：WordPress 的命令行管理工具 [↩︎](#0d20be9d-link)
3. PHP：WordPress 核心使用的服务端编程语言 [↩︎](#767c1e36-link)
4. URL：统一资源定位符，即网址 [↩︎](#7a49a331-link)
<!-- WP Chinese Converter Full Page Converted. Target Lang: zh-sg -->