为自定义wp-cli命令创建子命令

时间:2019-03-17 作者:StevieD

我在玩弄编写自定义wp cli命令。我成功地创建了一个简单的命令,wp-cli theme save 它运行脚本来备份站点的主题文件:

<?php

class Save_Command extends WP_CLI_Command {

     /**
     * Create a tarball of current active theme and save it to wp_themes directory in the user\'s config directory.
     *
     * @synopsis
     */
    public function __invoke($args = array(), $assoc_args = array())
    {
    exec ( \'wpst\' );
    }

}

WP_CLI::add_command( \'theme save\', \'Save_Command\' );
此代码存在于~/.wp-cli/commands/custom/save/theme-save.php 和工作。

现在,我想用一个新命令扩展此功能:

wp theme save colors <scheme_name>

此功能将自定义颜色输出到文件。我使用以下代码尝试使其正常工作:

<?php

class Save_Theme_Colors_Command extends WP_CLI_Command {

     /**
     * Save color scheme.
     *
     * @synopsis <name of color scheme>
     */
    public function __invoke($args = array(), $assoc_args = array())
    {
    exec ( "go save_theme_colors " . implode(" ", $args));
    }

}

WP_CLI::add_command( \'theme save colors\', \'Save_Theme_Colors_Command\' );
但是,当我尝试执行该命令时,出现了一个错误:

Warning: Failed to load autoloader \'phar://wp-cli.phar/vendor/autoload.php\'. Reason: \'wp theme save\' can\'t have subcommands.

我尝试了各种方法让子命令工作,包括使用@subcommand指令,但这似乎被忽略了。

1 个回复
SO网友:StevieD

好的,看来我需要更改命令,以便:

wp theme save themewp theme save colors

这是可行的。