WP-CLI v0.21.0 发行说明

这周已经相当疯狂,还只是星期三。

正如你们中的许多人所知,我在星期一晚上启动了一项 Kickstarter 众筹活动:更加 RESTful 的 WP-CLI 。令人难以置信的是,它在不到 12 小时内就完成了 100% 的筹款。点击链接查看有关我将在 2016 年初开展的更多详细信息。

但是,我有一个更加重要的说明,涉及支持的 WordPress 版本:

  • WP-CLI v0.22.0(下一个版本)将将最低支持的 WordPress 版本从 3.5 提高到 3.7(背景信息)。
  • WP-CLI 版本在 0.20.3 之前将与 WordPress 4.4 不兼容(背景信息)。

这个重要说明可能与您有关,请相应采取行动。

WP-CLI v0.21.0 解决了 109 个问题和拉取请求。以下是新内容。

使用 WP_CLI::get_runner()->load_wordpress(); 加载 WordPress

现在,您可以通过将 @when before_wp_load 添加到您的命令文档来在 WordPress 加载之前运行 WP-CLI 命令一段时间了。现在,您可以使用相同的命令加载 WordPress 。

查看 wp eval 如何使用 WP_CLI::get_runner()->load_wordpress()

class Eval_Command extends WP_CLI_Command {

    /**
     * 执行任意的 PHP 代码。
     *
     * <php-code>
     * : 要执行的代码,作为字符串。
     *
     * [--skip-wordpress]
     * : 在不加载 WordPress 的情况下执行代码。
     *
     * @when before_wp_load
     *
     * ## 示例
     *
     *     wp eval 'echo WP_CONTENT_DIR;'
     */
    public function __invoke( $args, $assoc_args ) {
        if ( null === Utilsget_flag_value( $assoc_args, 'skip-wordpress' ) ) {
            WP_CLI::get_runner()->load_wordpress();
        }
        eval( $args[0] );
    }
}

使用 wp eval --skip-wordpress 来执行 PHP 而不加载 WordPress 。或者,使用 wp eval-file --skip-wordpress ,例如,执行一个快速而不需要 WordPress 安装的脏脏脏脏脏脏。

类似地,当您使用 wp core verify-checksums--version=时,WP-CLI 将检查以确保 core 文件未被修改,而无需加载 WordPress 。

创建这个新功能几乎就像更换行驶中的汽车引擎。

使用--debug 获得更多详细信息

当您提供--debug 标志时,您将获得更多关于 WP-CLI 执行您的命令的上下文信息。

之前:

$ wp option get home --debug
http://wordpress-test.dev

之后:

$ wp option get home --debug
Debug: 使用默认全局配置:/home/vagrant/.wp-cli/config.yml(0.026s)
Debug: 未找到项目配置(0.027s)
Debug: 从配置中获取所需文件:/srv/www/wp-rest-cli/wp-rest-cli.php(0.059s)
Debug: 定义了 ABSPATH:/srv/www/wordpress-test.dev/(0.06s)
Debug: 开始加载 WordPress(0.063s)
Debug: wp-config.php 路径:/srv/www/wordpress-test.dev/wp-config.php(0.065s)
Debug: 设置 URL:wordpress-test.dev/(0.066s)
Debug: 已加载 WordPress(0.515s)
Debug: 正在运行命令:option get(0.516s)
http://wordpress-test.dev

通过在关键检查点包含 WP_CLI::debug( $debug_message );,可以使您的命令更加有帮助。

v0.21.0 的其他变化

增强功能:

  • 使用 wp core update-db --network 来升级整个网络中的数据库;还通过提供 fromto 数据库版本来改善此命令的详细程度。
  • 添加 wp comment recount 命令以重新计算文章的评论数。
  • 包括 wp taxonomy listwp taxonomy getwp post-type listwp post-type get 以获取关于已注册的分类和文章类型的详细信息。
  • 使用 wp post updatewp post delete 时,使用--defer-term-counting 在操作结束时重新计算术语计数,以提高性能。
  • 在使用无效的 plugin slug 运行 wp scaffold plugin-tests 时返回更有用的错误消息。
  • wp theme list 中,通过设置 status=parent 来表示父母主题。这更清晰地区分了真正不活动的主题与被用作父母主题的 “不活动” 主题。
  • 尝试在 multisite 安装上使用 wp rewrite flush --hard 时显示错误消息,因为 WordPress 不为多站点安装生成.htaccess 文件。
  • 允许 wp core download 使用--path,即使检测到 WP 。这允许自定义 WP-CLI 命令在现有 WP 安装范围内从子目录下载 WP 。
  • wp export 添加--post_type__not_in 参数,现在可以生成一个不包括 feedbacks 等内容的导出文件。
  • 支持使用 wp export --post__in 的空格分隔的 ID 。这使得更容易传递 wp post list --format=ids 返回的 ID 。
  • 在使用 wp scaffold plugin 时包括一个.editorconfig
  • 新生成的 install-wp-tests.sh 文件支持 $WP_VERSION=trunk$WP_VERSION=nightly,以便对 WordPress trunk 运行您的插件测试。
  • wp core multisite-convert 中,当 wp-config.php 不可写时为用户提供更有用的错误消息。
  • 当无效的子命令具有有效的父命令时,为用户提供更有帮助的错误消息。
  • 在警告并要求确认后,支持在由 APC 缓存支持的 WordPress 实例上使用 WP-CLI 。
  • 如果 WP-CLI 是较大的 Composer 项目的一部分,则 sniffs 出自定义供应商路径。
  • 不再需要通用参数 wp post createwp comment create,可以在不提供标题等信息的情况下使用这些命令。
  • 接受没有右侧数据的关联参数。
  • 在查找具有 wp cli update 的 PHP 二进制文件时,耗尽所有可能的选项。以前,WP-CLI 会尝试直接调用 php,但在 PHP 未公开为这样的系统上会失败。
  • 根据 WordPress 版本,接受 wp_new_user_notification()的弃用第二个参数。

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

此版本的贡献者:aaemnnosttv 、 borekb 、 danielbachhuber 、 gmcinnes 、 JRGould 、 johnbillion 、 kraftbj 、 miya0001 、 ntwb 、 rodrigoprimo 、 rmccue szepeviktor 、 torounit 、 voldemortensen 、 ypid


https://wptea.com/?p=4937


发表评论

0 条回复

发表回复

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