WP-CLI v0.22.0 发行说明

Wpcli logo

2016年快乐!在我深入研究RESTful CLI项目之前,我想您可能会喜欢一个新的WP-CLI版本。

使用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文件,而不是对数据库进行更新 [#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配置文件添加.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和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上查看所有已解决问题的完整列表。

文章目录



发表评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注