尽管 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 list
和wp 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
发表回复