WP-CLI v0.20.0 发行说明

Wpcli logo

尽管WP-CLI是一个成熟的项目,但我们仍然在每个版本中包含了一系列出色的改进。以下是v0.20.0中的新功能:

正则表达式,详细的搜索替换

使用--regex标志来进行wp search-replace,等待……使用正则表达式进行搜索和替换操作。使用--verbose标志,您将在操作执行时看到受影响的每一列:

$ wp post get 1 --field=title
Hello world
$ wp search-replace '(Hello)s(world)' '$2, $1' --regex --verbose
...
检查:wp_posts.post_content
0行受影响
检查:wp_posts.post_title
1行受影响
检查:wp_posts.post_excerpt
0行受影响
...
$ wp post get 1 --field=title
world, Hello

注意:使用--regex进行搜索替换比不使用要慢15-20倍。请确保在您的迁移计划中考虑性能损耗,并明智地使用。

主要错误修复:缓存的部分升级文件伪装成完整升级

自v0.17.0以来(拉取请求),WP-CLI错误地以有损的方式缓存了部分归档。更具体地说,部分升级的ZIP文件将与完整升级的ZIP文件具有相同的键进行缓存。由于文件错误地被缓存,随后的完整升级将使用缓存的部分升级存档。

如果您不能立即升级到v0.20.0,我们还发布了带有错误修复(拉取请求)的v0.17.2、v0.18.1和v0.19.3。缓存密钥也已更改,因此以前的无效WordPress存档会被静默忽略。

使用wp core verify-checksums来确保给定的WordPress安装具有每个文件的正确副本。如果验证失败,请使用wp core download --version=$(wp core version) --force重新安装WordPress。

WP-API CLI

我们在v0.19.0中发布了以下声明:

WP-API距离2.0-beta1还有几天,将为WordPress带来强大的新接口。不久的将来,我们将开始探索WP-CLI如何在内部使用WP-API。如果一切顺利,WP-CLI可能在大版本1.0.0之前发布一个0.x.0版本。

嗯…这是一份大胆的声明。请关注danielbachhuber/wp-rest-cli以获取实施进展。1.0.0仍然很可能是基于WP-API的WP-CLI,但需要进行大量工作才能实现。

有用的一行命令

有一些问题针对“如何执行X?”提出了解决方案,您可能也会发现它们很有帮助:

# 列出网络中每个站点的插件
wp site list --field=url | xargs -n 1 -I % wp plugin list --url=%

# 删除不活动的插件
wp plugin delete $(wp plugin list --status=inactive --field=name)

v0.20.0的其他更改

增强功能:

  • wp server命令已与WP-CLI捆绑在一起。使用PHP内置的Web服务器为特定的WordPress实例提供服务。
  • 通过使用wp cli update --nightly跟踪最新的更新。在下载夜间版本时,版本后面会附加哈希值。
  • 添加了简单的wp comment generate命令。
  • 在使用wp term generate时,将缓存失效推迟到命令的末尾。这可以提高命令的性能。
  • wp term list支持通过--term_id=<term-id>进行过滤。
  • 使用--start_id=<post-id>从给定的帖子ID开始wp export,或使用--post_type=<post-type>,<post-type>导出一组帖子类型。
  • 当在多站点上指定无效的--url=<url>时,引发有用的错误。以前,WP-CLI会静默失败,让用户对为什么命令无法运行感到困惑。
  • 使用wp role --clone=<role>从另一个角色创建新角色。
  • 使用--format=summary获取一行消息,用于wp (plugin|theme) update
  • 不再使用wp_download_language_pack(),因此可以在设置DISALLOW_FILE_MODS常量的情况下安装语言。

错误修复:

  • wp term generate尝试在后续执行中生成唯一的术语名称。以前,它会从0开始索引,然后对重复的术语引发错误。
  • 内部化wp_clean_update_cache()(用于wp core language listwp core language update)以防止在WordPress 4.0中引发致命错误。该函数是在WordPress 4.1中引入的。
  • 检测到WordPress后,WP-CLI将等待WordPress完全加载后执行wp help。这意味着向现有命名空间添加命令的插件可以显示其帮助文档。
  • wp scaffold plugin-tests命令生成的Travis通知语法已纠正。
  • 支持在WP_CLIUtilshttp_request()中安装到父项目中的Requests
  • 通过cli update传递--allow-root,以允许根用户更新WP-CLI。
  • 在使用WP-CLI选项卡补全后恢复apt-get选项卡补全。
  • 允许使用wp post update分配类别。
  • 防止wp import使用实际需要的内存的两倍,并在大型导入中节省数百MB。

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

本次发布的贡献者:boonebgorges、danielbachhuber、janvoracek、gedex、johnbillion、kdoole、marcaddeo、miya0001、montchr、morganestes、rodrigoprimo、rmccue、scribu、stevegrunwell、szepeviktor

发表评论

发表回复

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