WP-CLI v0.20.0 发行说明

尽管 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

发表评论

0 条回复

发表回复

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