# WP-CLI v0.22.0  发行说明

*Published:* 2016-01-07
*Author:* 壳壳虫

2016年快乐！在我深入研究RESTful CLI项目之前，我想您可能会喜欢一个新的WP-CLI[2](#8ec4fc4c)版本。

使用`wp cli update`来安装v0.22.0，包括137个已解决的问题和拉取请求。以下是新的功能。

### 搜索替换，用于爱和利润

上个月，Pantheon慷慨赞助了15小时的我的时间，以解决一些长期积压的错误，并进行一些重大增强。

让我们从好消息开始：

- 性能提升！现在，WP-CLI只运行一次MYSQL LIKE语句，而不是每1000行运行一次 \[#2304\]。在一个大约350万行的帖子meta表中，其中有75,610行受影响，这一更改将执行时间从734.926秒提高到225.509秒（快了3.3倍）。
- 使用`--export=<filename>`参数来创建转换后的数据的SQL[3](#57d33455)文件，而不是对数据库进行更新 \[#2254\]。当您希望为新环境准备数据库而无需导入然后运行搜索替换时，这是一个有用的功能。
- 可以在表名中使用通配符 \[#2233\]。使用`wp search-replace <old-string> <new-string> '*meta*'`来搜索替换只是带有`meta`的表。注意：模式需要用引号引起来，因为`*`在Bash中是一个特殊字符。

我还解决了许多搜索替换错误和小的增强功能：

- 默认情况下，在替换序列化数据内部时递归对象 \[#2222\]。除其他功能外，这可以确保主题修改按预期进行转换。您可以使用`--no-recurse-objects`来禁用此行为。但是，如果您禁用了此行为，我希望能听到您的意见。我认为这是一个可以在以后删除的不必要选项。
- 正确转义用于搜索或替换字符串的引号 \[#2230\]。
- 告知用户在执行搜索替换过程后刷新持久对象缓存 \[#2236\]。
- 当替换字符串与搜索字符串相同时，提前退出 \[#2235\]。
- 在使用`--verbose`运行搜索/替换时指示执行时间 \[#2242\]。
- 当没有需要替换时，防止不必要的调用`$wpdb->update()` \[#2245\]。
- 在正则表达式模式下去除不必要的`REGEXP`查询 \[#2305\]。

### 受支持版本的更改

WP-CLI的最低受支持的WordPress版本现在是3.7 \[#2261\]。

我们还正式支持PHP 7 \[#2330\]。

### v0.22.0中的其他一切

`wp scaffold (plugin|plugin-tests)`的改进：

- 通过仅在分支的初始构建失败时发送电子邮件通知来减少Travis的噪音 \[#2194\]。
- Plugin的header遵循WordPress的PHPDoc标准 \[#2197\]。
- 向PHPUnit[1](#d2411729)配置文件添加`.dist`扩展名，以允许使用本地配置文件进行覆盖 \[#2247\]。
- 解析`readme.txt`以查找用作Travis测试版本的WordPress版本 \[#2255\]。
- 包括默认的`.gitignore` \[#2297\]。

现有命令的新标志：

- `wp core update --minor`仅执行小更新 \[#2256\]。
- `wp (post|comment|user) meta delete <id> --all`删除给定对象上的所有元数据值 \[#2265\]。
- `wp core update-db --dry-run`查看是否需要升级数据库 \[#2293\]。
- `wp media regenerate --only-missing`用于在包含大量图像的站点上提供更快的性能，其中仅有少量缺少大小的图像 \[#2292\]。
- `wp cron event run --all`执行所有已注册的cron事件 \[#2323\]。
- `wp site empty --uploads`清空站点并删除其上传目录\[#2339\]。
- `wp core install --skip-email`在没有电子邮件通知的情况下安装\[#2345\]。
- `wp transient (get|set|delete) --network`用于管理站点短时存储\[#2351\]。

框架增强：

- 在比较WordPress版本时引入`wp_version_compare()` \[#2237\]。SVN[4](#aff7793b)和Git标签在`$wp_version`中包括`-src`，这是`version_compare()`不喜欢的。
- 在设置时推迟使用`$PAGER`环境变量\[#2264\]。
- 向项目引入`composer.lock`文件，以修复对特定散列的依赖关系\[#2280\]。
- 通过全局化wp-config.php中定义的任何新变量，因为它们预计是全局的\[#2318\]。
- 如果缺少`--require=<file>`，则指定缺失文件引用位置的上下文，以便更容易进行调试\[#2336\]。
- 使用`mustangostang/spyc`而不是捆绑我们自己的副本\[#2350\]。`Spyc`类仍然在全局命名空间中可用。
- 引入`WP_CLIUtilsget_temp_dir()`以获取更安全的临时目录\[#2353\]。

其他命令的改进：

- 在建立自定义taxonomy时包括`not_found`标签\[#2196\]。
- 允许在文件名中不包含`.zip`的情况下安装远程插件文件\[#2193\]。
- 在将用户添加为超级管理员时，警告如果用户已经是超级管理员\[#2202\]。
- 在`wp import`中使用`WP_CLI::log()`而不是`WP_CLI::line()`，因此尊重`--quiet`标志\[#2234\]。
- 为通配符表(`wp db tables`)（例如`*meta*`），`--all-tables-with-prefix`和`--format=csv`增加支持\[#2250\]。
- 在安装插件或主题时，资源未找到时改进错误消息\[#2253,#2267\]。
- 使用`--filename_format=<format>`支持自定义`wp export`文件名格式\[#2230\]
- 假设在`wp install`期间出现数据库错误，这是安装失败，并相应地报告\[#2337\]。
- 在`wp scaffold plugin`时在运行时公开插件标头详细信息\[#2338\]。
- 在`wp scaffold package-tests`中包括`ci/behat-tags.php`文件\[#2342\]。

全面的错误修复：

- 在检测到WP但未安装时允许`help`提前运行(例如，`wp core config --help`) \[#2190\]。该错误是在v0.20.0中引入的。
- 在创建child theme时，为子主题的enqueue函数创建父主题slug的安全版本\[#2203\]。以前，如果父slug包括破折号，将生成无效的enqueue函数。
- 在查找`wp-config.php`并启用PHP的`open_basedir`时抑制错误通知\[#2211\]。
- 修复了`WP_CLILoggersQuiet`中的错误通知\[#2210\]。
- 在custom post type scaffolding中修复了`all_items`标签\[#2213\]。
- 确保在下载夜间WP-CLI Phar构建时，实际下载的是夜间版本，而不是重定向\[#2214\]。
- 在安装multisite时，将`upload_space_check_disabled`设置为`1`。这与新安装上的core行为相符。
- 在图像重生失败时提供更有帮助的消息\[#2239\]。
- 在删除父项时正确更新菜单子项父项\[#2262\]。
- 在使用`wp rewrite structure`时停止在重写规则前缀中添加`index.php` \[#2279\]。
- 在`wp transient set`简介中修复拼写错误\[#2282\]。
- 为非美国英语区域恢复`wp core verify-checksums`支持\[#2287\]。该错误是在v0.21.0中引入的。
- 在可用时，切换到readline库，以更好地支持使用`--prompt`的箭头键\[#2325\]。
- `WP_CLIFormatter`在对象上适当检查null值\[#2322\]。
- 在`wp media import`中，使用主机而不是方案来确定文件是远程还是本地，以支持Windows\[#2324\]。
- 确保在指定无效的`--version=<version>`的情况下更新插件时不会删除插件\[#2346\]。

该版本的贡献者包括：2ndkauboy, coreyworrell, danielbachhuber, davidleach, duncanjbrown, ernilambar, fjarrett, gilbitron, greg-1-anderson, iandunn, jjeaton, modelm, rodrigoprimo, ryanshoover, stevector, szepeviktor, tristanpenman, x1024。

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

### 名词解释

1. PHPUnit：PHP 语言的单元测试框架 [↩︎](#d2411729-link)
2. WP-CLI：WordPress 的命令行管理工具 [↩︎](#8ec4fc4c-link)
3. SQL：结构化查询语言，用于操作关系型数据库 [↩︎](#57d33455-link)
4. SVN：Subversion 版本控制系统，WordPress 管理代码的工具 [↩︎](#aff7793b-link)
<!-- WP Chinese Converter Full Page Converted. Target Lang: zh-sg -->