如何使用node-wp-cli运行自定义wp-cli命令?

时间:2015-11-16 14:43:56

标签: node.js wordpress wp-cli

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

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

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

1 个答案:

答案 0 :(得分: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){