# WP-CLI v1.0.0  发行说明

*Published:* 2016-11-29
*Author:* 壳壳虫

喔耶！

在过去的五年多时间里，数百名贡献者共同努力，为您带来了WP-CLI[3](#c5f79ed6) v1.0.0，我今天很自豪地宣布。

这个版本代表了很少有开源项目能够达到的成熟水平。它也标志着一个过渡时刻。WP-CLI 项目将把重心转向WP-CLI软件包生态系统，在那里它将通过构建和鼓励新功能作为独立软件包来推动创新。我们希望这种方法将促进更快的迭代和更多的创造力，并更可持续地分担维护负担。随着这些社区软件包的成功，我们将把它们的经验带回WP-CLI，同时修复错误和进行小的增强。

现在问题积压已经清零，我个人期待着为我的自己的WP-CLI创新工作室runcommand做更多的创意。

本周去费城吗？我将出席Post Status Publish和WCUS（尽管只到周五下午）。打个招呼吧 – 我在Twitter上是@danielbachhuber。

接下来，让我们继续…

### 介绍`WP_CLI::runcommand()`

`WP_CLI::runcommand()`（文档）是从WP-CLI命令中运行WP-CLI命令的新方法。就好像`WP_CLI::run_command()`和`WP_CLI::launch_self()`成长起来、结婚并生下了完美的孩子。

使用`WP_CLI::runcommand()`，您可以：

- 启动新的子进程（默认），或重用现有进程。
- 可选择在错误时防止进程退出。
- 返回由命令生成的标准输出（STDOUT），或所有命令执行细节（STDOUT、STDERR、return\_code）作为对象。
- 可选择将捕获的STDOUT解析为JSON[4](#cd3768f4)。

相关的拉取请求包括：#3605，#3619，#3621。

### 重大变更：部分批量操作失败时使用返回码1

某些命令支持对多个资源执行相同的操作（例如，使用`wp plugin update akismet hello`更新两个或更多插件）。以前，如果其中一个操作失败（例如，plugin更新未能下载），WP-CLI将显示警告，继续执行，并以返回码0退出。从v1.0.0开始，当一个或多个操作失败时，WP-CLI将使用返回码1。

更多背景和原因，请参见此问题。

受影响的命令包括：

- `wp media (regenerate|import)`
- `wp menu delete`
- `wp menu item delete`
- `wp plugin (install|activate|update|toggle|deactivate|uninstall|delete)`
- `wp super-admin add`
- `wp theme (install|update)`
- `wp term delete`
- `wp widget (delete|deactivate|reset)`

在您的自定义WP-CLI命令中使用`WP_CLIUtilsreport_batch_operation_results()`（文档）更容易支持这种行为。

相关的拉取请求包括：#3584，#3583，#3582，#3585，#3586，#3588。

### 1.0.0中的其他一切

新命令：

- `wp package update` – 更新所有已安装的WP-CLI软件包到它们的最新版本。
- `wp scaffold theme-tests` – 为主题创建PHPUnit[2](#d7327ead)测试脚手架。

命令改进：

- `wp cache type`: 
    - 支持WP LCache作为缓存类型\[#3504\]。
- `wp cli aliases`: 
    - 为更容易访问添加`alias`子命令\[#3512\]。
- `wp cli update`: 
    - 在更新时验证发行哈希值\[#3515\]。
    - 在以根用户身份运行时不再需要`--allow--root`标志\[#3576\]。
- `wp core config`: 
    - 确保WordPress编码标准应用于生成的wp-config\[#3496\]。
- `wp core (install|multisite-install)`
    - 默认使用随机生成的密码`--admin_password=<password>`，现在是可选的\[#3535，#3573\]。
- `wp core language (install|update)`: 
    - 缓存语言包下载\[#3595\]。
- `wp core update`: 
    - 在`CoreUpgrader`类中使用全局命名空间的`WP_Error`\[#3593\]。
- `wp core update-db`: 
    - 为更新过程设置`WP_INSTALLING`常量\[#3503\]。
- `wp package install`: 
    - 在包composer.json中使用提供的版本，而不是“dev-master”\[#3519\]。
    - 向包管理器的`composer.json`添加WP-CLI版本，以优雅地处理WP-CLI版本约束\[#3603\]。
- `wp package list`: 
    - 指示有可用更新的包\[#3611，#3612\]。
- `wp post delete`: 
    - 在成功消息中正确指示revisions立即删除\[#3524\]。
- `wp scaffold plugin`: 
    - 在`.gitignore`和`.distignore`中忽略分发归档文件\[#3520\]。
    - 在`.distignore`中忽略`circle.yml`，`.gitlab-ci.yml`和`behat.yml`\[#3599\]。
- `wp scaffold plugin-tests`: 
    - 在`install-wp-tests.sh`中检出数据目录，以防止在WP 4.7中出现提示\[#3571\]。

框架增强：

- 将基于Composer[1](#1aa4aeb5)的依赖项更新为最新版本\[#3498，#3525\]。
- 引入`--prompt=<assoc>`以提示特定的关联参数，使用户避免在bash历史中暴露安全数据\[#3531\]。
- 添加对Cygwin附带的PHP版本的支持\[#3591\]。

此版本的贡献者（拉取请求、文档和软件包作者）：abea、anttiviljami、cobyan、danielbachhuber、diggy、ernilambar、franz-josef-kaiser、greatislander、itspriddle、miya0001、mmcev106、mopquill、ocean90、pj-dave、pkarjala、richardbuff、sommarnatt、szepeviktor、torounit

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

### 名词解释

1. Composer：PHP 的依赖管理工具 [↩︎](#1aa4aeb5-link)
2. PHPUnit：PHP 语言的单元测试框架 [↩︎](#d7327ead-link)
3. WP-CLI：WordPress 的命令行管理工具 [↩︎](#c5f79ed6-link)
4. JSON：一种轻量级的数据交换格式 [↩︎](#cd3768f4-link)
<!-- WP Chinese Converter Full Page Converted. Target Lang: zh-sg -->