1

我正在使用node-wp-cli从 Node.js 运行 WP-cli 命令。所有内置的 WP-cli 命令都可以完美运行,但我在尝试运行自定义 WP-cli 命令时卡住了。

有没有办法wp MyRegisteredCommand SubCommand从 node-wp-cli 运行我的自定义 WP-Cli 命令?喜欢:

WP.MyRegisteredCommand.SubCommand(function(err,res){ //get response
    console.log(res);
});
4

1 回答 1

0

这相对容易,但需要一些调整......

节点 wp-cli 用于wp cli cmd-dump识别可用命令,但此命令在加载 WordPress 之前运行,因此它只会识别内置命令。

简而言之,调整:

  • WP.js,线schema(function(err,schema){...。您需要知道 的结构schema,因此只需运行一些内置命令并在此处设置断点。
  • 按照上面的架构结构为您的命令实施架构。它看起来像这样:

    my_commands.js

    var schema = {
        mycmd: {
            mysubcmd: {
                args: [ {
                    arg: 'arg1',
                    required: true,
                    type: 'args'
                } ],
                endpoint: true,
                options: {
                    opt1: {
                        required: true,
                        type: 'param'
                    },
                    flag1: {
                        required: false,
                        type: 'flag'
                    },
                }
            },
            use: 'wp mycmd mysubcmd'
        }
    }
    
    module.exports.schema = schema;
    
  • 修改WP.js

    var mySchema = require('my_commands.js').schema;
    
    ...
    
    schema(function(err,schema){
    
        schema = _.merge(schema, mySchema); // this line added
    
        var toMerge = function mapSchema(schema){
    
于 2016-08-17T13:23:30.180 回答