# WP-CLI v0.25.0 发行说明

*Published:* 2016-10-25
*Author:* 壳壳虫

发布日快乐！

今天，我很高兴为您带来 WP-CLI[4](#8dbbd2f3) v0.25.0。查看新发布的路线图，了解即将发布的版本和产品重点的详细信息（提示：未来 WP-CLI 将不再支持 PHP 5.3）。

让我们深入了解吧。

### 与 WordPress 4.7 兼容性

WordPress 4.7 引入了一个新的 `WP_Hook<sup class="fn" data-fn="10b7c7c9"><a href="#10b7c7c9" id="10b7c7c9-link">6</a></sup>` 实现，用于注册和执行动作和过滤器。由于 WP-CLI 拥有自己的 `WP_CLI::add_wp_hook()`，它错误地访问了全局的 `$wp_filter`，即使 `add_filter()` 函数可用，WP-CLI 在某些情况下可能会致命错误。现在 WP-CLI 在适当的时候调用 `add_filter()`。

**重要的是，由于这些更改的性质，WP-CLI 版本 0.25.0 之前将与 WordPress 4.7 不兼容。**

检查此拉取请求中的更改。

### 包索引中的新包

WP-CLI 社区一直在积极创建新工具供您使用（并回馈）：

- aaemnnosttv/wp-cli-login-command – 使用安全的无密码魔术链接登录到 WordPress。
- alessandrotesoro/wp-cli-helpscout-docs-parser – 提取 Helpscout 文档文章和类别以构建离线文档。
- alessandrotesoro/wp-usergen-cli – 为测试目的生成随机用户。
- anhskohbo/wp-cli-themecheck – 在 WP-CLI 中运行 Themecheck。
- BeAPI/wp-cli-light-db-export – 允许您导出大型数据库的所有表，但不包括所有数据。
- binarygary/db-checkpoint – 将您的数据库视为视频游戏中的保存点。
- brightoak/wp-cli-envoyer – 通过 WP-CLI 调用 Envoyer 部署。
- getshifter/wp-cli-shifter – 为 Shifter 导入/导出您的 WordPress 站点。
- eriktorsner/wp-checksum – 验证主题和插件的校验和。
- iandunn/wp-cli-plugin-active-on-sites – 列出在 多站点 网络中激活了给定的 插件 的所有站点。
- markri/wp-sec – 检查 wpvulndb.com 上的 WordPress CVE[7](#16b0c43a) 安全问题。
- mattgrshaw/wp-installer – 安装和卸载 WordPress 的简单命令。
- pressbooks/pb-cli – Pressbooks 的一套 wp-cli 命令。
- runcommand/assign-featured-images – 为支持缩略图的帖子分配特色图片。
- runcommand/manifest – 生成 WordPress 配置的概述，以更高级的理解 WordPress 内部的运作情况。
- rxnlabs/wp-composer – 使用 Composer[1](#046b1c7a) 的强大功能管理您的 WordPress 网站依赖项。
- trendwerk/faker – 使用 WP-CLI 创建虚假文章数据。
- trepmal/blog-extractor – 从多站点中提取单个博客。
- trepmal/wp-revisions-cli – 管理修订版本。
- welaika/wp-cli-db2utf8 – 将新 WP 安装的数据库编码降级为 UTF8。

使用 `wp package install <package-name>` 安装其中任何一个（其中 `<package-name>` 通常是 `<user>/<repo>`）。当您这样做时，请感谢作者！

### 安装 WP-CLI 包的更多方式

虽然我们希望看到您的包在包索引中列出，但我们意识到您可能无法这样做。现在，`wp package install` 支持安装任意 Git URL[10](#b852cc95) \[#3482\]、`.zip` 文件 \[#3485\] 或目录路径 \[#3484\] 作为包。

```
$ wp package install git@github.com:runcommand/doctor.git
$ wp package install https://github.com/runcommand/doctor.zip
$ wp package install doctor

```

（doctor 是来自 runcommand 的第二个高级 WP-CLI 命令）

- Git URL 被视为 VCS 存储库，并克隆到 `~/.wp-cli/packages/vendor`。
- ZIP 存档（远程和本地）被解压到 `~/.wp-cli/packages/local`，并作为路径存储库添加。
- 本地目录路径被添加为路径存储库，这意味着 Composer 创建到现有目录路径的符号链接。如果您提供的目录被删除，安装将会中断。

### 0.25.0 中的其他更改

新命令：

- `wp db check` – 使用默认的 `--check` 选项运行 `mysqlcheck` \[#3332\]。
- `wp site option *` – 用于管理 WordPress 站点选项的 CRUD[5](#766d6052) 命令 \[#3386\]。
- `wp user session *` – 用于管理用户会话的 CRUD 命令 \[#3307\]。

命令改进：

- `wp cli update`: 
    - 引入 `--stable` 以安装或重新安装最新的稳定版本 \[#3430\]。
- `wp core config`: 
    - 向生成的 `wp-config.php` 添加注释，以更好地匹配由 WordPress core 提供的版本 \[#3312\]。
- `wp core download`: 
    - 保留 `--version` 参数的大小写以正确处理预发布版本 \[#3283\]。
    - 确保 `wp core download --version=latest` 生成正确版本的缓存密钥 \[#3467\]。
- `wp core language update`: 
    - 修复关于变量引用的严格标准错误 \[#3380\]。
    - 允许在设置为 `en_US` 为区域设置时更新语言包 \[#3397\]。
- `wp core multisite-(install|convert)`: 
    - 在不能插入到 `wp-config.php` 时发出警告，而不是在末尾错误地插入 \[#3272\]。
    - 在插入的常数周围包括足够的垂直间距 \[#3267\]。
- `wp core update-db`: 
    - 确保 `wp core update-db --network --dry-run` 实际上是干净的 \[#3347\]。
- `wp core version`: 
    - 在 `wp core version --extra` 中显示默认的核心语言 \[#3221\]。
- `wp import`: 
    - 在 WXR[11](#35521d67) 导入进度指示器中指示当前文件，以传达总数是当前文件的总数，而不是所有文件的总数 \[#3270\]。
- `wp media regenerate`: 
    - 添加一个简单的进度指示器 \[#3407\]。
- `wp option list`: 
    - 添加 `--no-transients` 标志以忽略瞬态 \[#3452\]。
    - 添加 `--exclude=<exclude>` 参数以列出不包括特定模式的选项 \[#3455\]。
- `wp package install`
    - 在安装依赖包时显示包依赖详细信息 \[#3418, #3425\]。
- `wp package uninstall`
    - 在卸载包时删除包的依赖项 \[#3343\]。
    - 在卸载时正确分配 `$composer_backup` \[#3399\]。
- `wp plugin install`: 
    - 从为基于 Github 的 ZIP 创建的目录中删除分支名称 \[#3314, #3451\]。
- `wp scaffold plugin-tests`: 
    - 在 CircleCI 上使用特定于 Trusty 的 PHP 版本 \[#3359\]。
    - 在 CircleCI 上使用正确的默认用户来运行 MySQL \[#3457\]。
    - 根据 PHP 版本在 Travis 上使用最新版本的 PHPUnit[2](#6282d7cc) \[#3463\]。
    - 将 WordPress Coding Standards 添加到新创建的插件中 \[#3472\]。
- `wp search-replace`: 
    - 确保引用表以支持所有允许的字符 \[#3318\]。
    - 当未定义 `export_insert_size` 时防止错误通知 \[#3357\]。
    - 如果由于某种原因 SQL[8](#5530dde7) 引发错误，回退到 PHP \[#3387\]。
- `wp server`: 
    - 支持传递自定义的 `.ini` 文件来配置服务器 \[#3330\]。
- `wp site create`: 
    - 在创建新站点时，使用 `get_blog_details()` 来获取站点 URL，以确保显示正确的 URL \[#3416\]。
- `wp site empty`: 
    - 确保整个上传目录为空 \[#3400\]。
- `wp theme install`: 
    - 在安装 子主题 时正确安装父主题 \[#3301\]。
- `wp transient`: 
    - 合并`wp transient delete-all`和`wp transient delete-expired`为`wp transient delete`的标志\[#3389\]。
- `wp user create`: 
    - 当创建用户时，防止发送电子邮件通知，因为只有在提供`--send-email`时才应发送电子邮件通知\[#3331\]。
- 框架增强：
- 将基于Composer的依赖项更新为最新版本\[#3257, #3429, #3460, #3468\]。
- 正确处理将实例化对象注册为命令\[#3269\]。
- 将`ProcessRun`类拆分到其自己的文件中\[#3377, #3422\]。
- 允许使用`WP_VERSION`环境变量运行测试套件\[#3383, #3392\]。
- 在使用WP版本时，使用`Utilsget_named_sem_ver()`时防止出现错误通知\[#3404\]。
- 修复了在处理`nocache_headers` filter上的`dead_db()`错误时出现的致命错误\[#3440\]。
- 为防止`wp_mail()`在使用时引发未捕获的异常，分配了默认的`$_SERVER['SERVER_NAME']`\[#3449\]。
- 在使用别名时，忽略`wp-cli.yml`中的`url:`，因为别名完全覆盖了用户、URL、路径、SSH[9](#51771b12)和http\[#3450\]。
- 在`WP_CLI::launch()`以`return_code=-1`结束时发出警告，这可能是由于使用了`--enable-sigchild`选项的自定义编译版本的PHP引起的\[#3458\]。
- 在`wp_die()`处理程序中提供更多的详细信息，以在数据库连接失败时为最终用户提供更多详细信息\[#3459\]。
- 支持将参数传递给`WP_CLI::do_hook()`\[#3470\]。
- 在执行别名组时记录当前别名\[#3471\]。
- 只在存在值时检查`options`的位置参数\[#3481\]。
- 各种Bash完成改进\[#3490, #3491, #3492\]。
- 跨全面修复错误：
- 为基于Debian的系统上的PHP 7定义了所有必要的依赖关系\[#3208\]。
- 确保`site --site_id= -> site --network_id=`的向后兼容桥接只影响`wp site create`\[#3227\]。
- 在验证核心校验和时捕获由`RecursiveDirectoryIterator`引发的异常\[#3266\]。
- 在meta命令中传递斜杠数据\[#3274\]。
- 确保`composer.json`中使用了适当的WP-CLI软件包索引URL\[#3276\]。
- 在`WP_CLIUtilsget_temp_dir()`中使用全局命名空间来更正`WP_CLI`的引用\[#3369\]。
- 为此版本作出贡献的贡献者（拉取请求、文档和软件包作者）：2ndkauboy、aaemnnosttv、alessandrotesoro、anhskohbo、balbuf、BeAPI、binarygary、bradp、brightoak、danielbachhuber、danilomaccioni、diggy、getshifter、eriktorsner、ernilambar、fisele、grappler、guillaumemolter、iandunn、johnbillion、jorgeatorres、kouratoras、markri、mattgrshaw、miya0001、mustafauysal、nyordanov、ocean90、petenelson、polevaultweb、pressbooks、rahulsprajapati、runcommand、rxnlabs、shulard、swissspidy、szepeviktor、taianunes、tnorthcutt、trendwerk、trepmal、veganista、welaika
- 您可以在GitHub[3](#bb71a530)上查看已解决问题的完整列表。

### 名词解释

1. Composer：PHP 的依赖管理工具 [↩︎](#046b1c7a-link)
2. PHPUnit：PHP 语言的单元测试框架 [↩︎](#6282d7cc-link)
3. GitHub：全球最大的代码托管和协作开发平台 [↩︎](#bb71a530-link)
4. WP-CLI：WordPress 的命令行管理工具 [↩︎](#8dbbd2f3-link)
5. CRUD：增删改查，数据操作的四种基本功能 [↩︎](#766d6052-link)
6. Hook：WordPress 钩子，开发者在特定位置插入自定义代码的机制 [↩︎](#10b7c7c9-link)
7. CVE：通用漏洞披露编号，安全漏洞的标准标识 [↩︎](#16b0c43a-link)
8. SQL：结构化查询语言，用于操作关系型数据库 [↩︎](#5530dde7-link)
9. SSH：安全外壳协议，用于远程登录和管理服务器 [↩︎](#51771b12-link)
10. URL：统一资源定位符，即网址 [↩︎](#b852cc95-link)
11. WXR：WordPress XML 导出文件格式 [↩︎](#35521d67-link)
<!-- WP Chinese Converter Full Page Converted. Target Lang: zh-sg -->