WP-CLI v1.5.0 发行说明

今天又是发布日!

我们很高兴地为您带来 WP-CLI v1.5.0,自 2017 年 11 月 v1.4.1 以来合并了总共 279 个拉取请求。

这次发布由不知疲倦的 Martin Burke(@gitlost) 领导,他确保了没有一个 bug 被忽视,没有一个边界情况未经测试。

新的提交者

  • Pascal(@swissspidy) 住在瑞士苏黎世。除其他贡献外,他一直在处理 embed 命令族的艰苦工作。

插件 校验验证

WP-CLI 现在可以通过新的 plugin verify-checksums 命令来验证已安装插件的完整性 (除了已有的 core verify-checksums 命令) 。 [#15], [#26]

# 验证所有已安装插件的文件与官方校验和是否匹配。
$ wp plugin verify-checksums --all
+-------------+---------------+-------------------------+
| plugin_name | file          | message                 |
+-------------+---------------+-------------------------+
| gutenberg   | backdoor.php  | 文件已添加          |
| gutenberg   | gutenberg.php | 校验和不匹配 |
+-------------+---------------+-------------------------+
错误:只验证了 1 个插件中的 2 个 (1 个失败) 。

注意:这是该功能的第一个迭代版本,仍然存在一些限制:

  • 它仅适用于托管在官方插件仓库中的插件。
  • 它仅适用于这些插件的最新版本,因为我们尚未在 wordpress.org 后端部署代码来为旧版本生成校验和。

在您计划使用这个新命令时,请牢记这些限制。

随着我们进一步迭代此项目,允许验证来自主题仓库的所有免费主题,以及希望以后也包括第三方插件/主题,我们欢迎任何反馈意见以改进当前的实施。

WordPress 配置文件操作

现在,管理您的 wp-config.php 文件变得更加容易!我们不仅改进了 config get,还包括了 config has 和可过滤的 config list 命令… 不仅如此,我们最终为您带来了全新的 config setconfig delete 命令,用于 WordPress 配置文件操作。 [#42], [#44]

# 获取在 wp-config.php 文件中定义的 table_prefix 。
$ wp config get table_prefix
wp_

# 检查 wp-config.php 文件中是否存在 DB_PASSWORD 常量。
$ wp config has DB_PASSWORD
(返回退出代码)

# 仅从 wp-config.php 文件中列出数据库用户和密码。
$ wp config list DB_USER DB_PASSWORD --strict
+-------------+-------+----------+
| key         | value | type     |
+-------------+-------+----------+
| DB_USER     | root  | constant |
| DB_PASSWORD | root  | constant |
+-------------+-------+----------+

特别感谢 @fjarrett 对 wp-cli/wp-config-transformer 软件包的出色工作,它支持了对 wp-config.php 的更改。

oEmbed 管理

新的 embed 命令允许您检查和操作 oEmbed 对象,例如,您可以清除特定帖子的缓存值:

$ wp embed cache clear 123
成功:已清除 oEmbed 缓存。

或者重置缓存值:

$ wp embed cache trigger 123
成功:已触发缓存!

您可以使用 fetch 查看 URL 的嵌入 HTML

$ wp embed fetch https://www.youtube.com/watch?v=dQw4w9WgXcQ

[youtube https://www.youtube.com/watch?v=dQw4w9WgXcQ?feature=oembed&w=525&h=295]

或者使用 --raw 选项查看提供程序返回的内容:

还有很多功能!

数组参数支持 (目前仅限 meta

post createpost update 命令的 --meta_input 选项现在接受 JSON 格式的数组,因此您可以一次性添加或更新帖子及其元数据:

$ wp post create --post_title='Title' --post_content='Content.' --meta_input='{""key1"":""value1"",""key2"":""value2""}
成功:已创建帖子 123 。

这是一个很好的时间节省方式,因为以前您需要运行三个单独的命令才能获得相同的结果。

这个看似无害的变更意味着我们终于可以通过这个 JSON 语法接受关联数组作为参数。 --meta_input 参数可能只是更多功能的第一个。

v1.5.0 中的其他内容

向后兼容性破坏

请注意,一个框架变更 [#4624] 改变了对 db searchdb tablessearch-replace 命令的表 filter 参数的行为。

现在,表筛选参数:

  • 在给定表筛选而不给定 --all-tables-with-prefix--all-tables 选项时,将尊重注册的 wpdb 表。
  • 在给定 --network 选项时,不会忽略 --scope 选项。
  • 表总是以排序顺序返回。

还请注意,option list 现在不再默认显示瞬时值 (transients)[#127] 。

新的和值得关注的

  • user reset-password: 重置用户的密码 [#119] 。
  • 命令描述现在遵循 WordPress 的规范,使用第三人称单数,感谢 DrewAPicture!

命令改进

  • cli info:
    • 显示操作系统和 shell 信息 [#4604], [#4610] 。
  • core download:
    • 当 ZIP URL 为 'http://' 时,跳过缓存以获取夜间版本 [#44] 。
  • core update:
    • 在 WP get_core_checksums() 中忽略 SSL trigger_error [#48] 。
    • 使用 ZipArchive 删除 wp-content/ 以始终允许 --skip-content [#59] 。
  • core verify-checksums
    • 在 WordPress 根目录中包含以 wp- 为前缀的文件时,警告 [#28] 。
  • db *:
    • 使用新的 after_wp_config_load 钩子来提前调用 db 命令 [#57] 。
  • db check/cli/create/drop/export/import/optimize/query/repair/reset:
    • 为所有提升权限命令添加 --dbuser--dbpass 选项,以及 checkoptimizerepair 命令的额外参数选项 [#75] 。
  • db search:
    • 注意:有关表筛选参数的处理,请参见上面的向后兼容性破坏 [#4624] 。
  • db size:
    • 确保 --size_format=<format> 参数的默认值始终为字节 [#69] 。
    • 包括 TB 和 GB 数据库大小格式的支持 [#81] 。
  • db tables:
    • 注意:有关表筛选参数的处理,请参见上面的向后兼容性破坏 [#4624] 。
  • export:
    • 当已指定 --post__in 时,添加 --with_attachments 选项以强制包括附件 [#16] 。
  • media image-size:
    • 在输出中添加尺寸比率 [#58], [#59] 。
  • media regenerate:
    • 如果没有尺寸元数据,不会抛出 PHP 警告 [#61] 。
  • option get:
    • 如果选项不存在,显示错误消息 [#126] 。
  • option list:
    • 默认情况下不显示瞬时值 [#127] 。
  • package *:
    • 支持混合大小写的包名称 [#49], [#50] 。
    • 添加 GITHUB_TOKENCOMPOSER_AUTH 处理 [#47] 。
  • package browse/list
    • 如果浏览/列出软件包时,Composer 无法访问存储库 [#60],则捕获异常。
  • package install/uninstall
    • 在内存限制错误时还原 composer.json [#64] 。
  • package install
    • 从正确的分支检索软件包名称 [#65] 。
  • plugin install
    • 将 Github 项目名称用作 Github 存档 URL 的插件目录 [#81]
  • post create/update
    • 通过将 JSON 格式的数组传递给--meta_input[#133],[#138] 来添加添加多个元数据的功能。
  • post create
    • --post_category 中接受 category 标签,检查是否提供了不正确的 ID 或标签 [#129] 。
  • post delete
    • 纠正删除消息 [#124] 。
  • post generate
    • 添加对生成特定 post_title 的支持 [#94] 。
  • scaffold block
    • 为插件或主题构建基本的 Gutenberg 块 [#96] 。
    • 基于 Gutenberg 手册添加内联文档,生成 style.css,支持最新的 supportsHtmlAPI,WordPress 编码标准修复 [#107] 。
    • 将 PHP 模板更新为最新的推荐方法 [#111] 。
  • scaffold child-theme
    • 生成符合 WordPress 编码标准的代码 [#117] 。
  • scaffold plugin
    • 为构建的 Gruntfile.js 添加默认任务 [#87] 。
    • 生成符合 WordPress 编码标准的代码 [#120] 。
  • scaffold plugin-tests
    • 使用 Composer 确定要安装的 PHPUnit 版本,而不是根据 Travis 环境变量 [#75] 。
    • phpunit.xml.dist 添加到 XML 声明 [#78] 。
    • bootstrap.php 中使用更新的错误消息 [#90] 。
    • 从 Travis CI 缓存中删除 Composer 供应商目录 [#99] 。
  • scaffold post-type
    • 从 dashicon 参数中修剪 dashicon-以防止重复字符串 [#70] 。
    • 刷新构建的文章类型标签 [#84] 。
    • 生成符合 WordPress 编码标准的代码 [#110] 。
  • scaffold taxonomy
    • term_updated_messages 添加到构建的分类法 [#82] 。
    • 生成符合 WordPress 编码标准的代码 [#112] 。
  • scaffold theme-tests
    • tests/bootstrap.php 添加 theme_root 过滤器,以确保主题的 functions.php 被加载 [#116] 。
  • search-replace
    • 注意:请查看上面关于表过滤参数处理的向后兼容性破坏 [#4624] 。
    • 添加--skip-tables=<tables> 参数以排除特定表格 [#48] 。
    • 在使用--report-change-only 时禁用没有索引的报告表 [#54] 。
    • 对报告进行一般改进,包括在没有表格输出时禁用表格显示 [#57] 。
    • 修复未引用非整数主键 [#59],[#63] 。
  • user remove-caps
    • 如果权限不存在或从角色继承 [#125],则出错。

框架增强

  • 在无法创建缓存目录时改进警告 [#4456] 。
  • 允许 @when 方法覆盖类 @when[#4458] 。
  • 从帮助文本中提取链接到脚注 [#4465] 。
  • 实现命令命名空间 [#4470] 。
  • 生成没有 set_url_scheme()get_site_url()[#4473] 。
  • 引入新的 after_wp_config_load 挂钩 (用于早期调用 wp db *)[#4488] 。
  • 使用 vagrant ssh-config 自动获取主机名 [#4495] 。
  • 在找不到安装时指示数据库中的其他 WP 安装 [#4476] 。
  • 允许在 Debian 构建中使用 php7.1-mysql[#4511] 。
  • 在注册命令时支持'longdesc'作为命令参数 [#4513],[#4636] 。
  • 改进提取器错误消息 [#4510] 。
  • multisite 上运行 wp cache flushwp search-replace,即使找不到站点 [#4527] 。
  • 修复在 Windows git/cygwin bash 上提示问题 [#4547] 。
  • 除非启用全局术语,否则不显示'sitecategories'表 [#4552] 。
  • 确保晚注册的命令出现在使用中 [#4564] 。
  • 改进在调用进程和使用 more.com 时的 Windows 兼容性 [#4572],[#4595] 。
  • 在 RPM 构建中使用更柔和的 PHP 要求 [#4571] 。
  • 仅当它们产生有效选项时才提供基于字典的建议 [#4590] 。
  • make_progress_bar()添加间隔参数 [#4603] 。
  • 添加 Utils\esc_like()wpdb 版本的补充 [#4612] 。
  • 正确处理 wp_get_table_names()中的通配符 (见上述向后兼容性破坏)[#4624] 。
  • 添加 shell 数组解析助手 [#4623],[#4635] 。
  • 检查 WordPress core 文件的可读性 [#4626] 。
  • 为错误输入添加一些建议 [#4577] 。

这次发布的贡献者总共有 39 位。
ahmadawais, BhargavBhandari90, danielbachhuber, davidbhayes, DrewAPicture, drzraf, ecotechie, emgk, eriktorsner, fjarrett, gitlost, grantpalin, gziolo, inetbiz, kirtangajjar, LC43, lukecav, marcochiesi, marksabbath, miya0001, mm-pagely, neonardo1, ntwb, ocean90, playmono, rkialashaki, runofthemill, ryotsun, sagarprajapati, schlessera, Shelob9, ssnepenthe, swissspidy, szepeviktor, terriann, thrijith, vbaranovskiy-plesk, vigilanteweb, websupporter

发表评论

发表回复

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