2015-11-16 109 views
1

我正在使用node-wp-cli從Node.js運行WP-cli命令。所有內置的WP-CLI命令都能正常工作,但是我試圖運行自定義的WP-CLI命令時卡住了。如何使用node-wp-cli運行自定義wp-cli命令?

有沒有辦法從node-wp-cli運行我的自定義WP-Cli命令wp MyRegisteredCommand SubCommand?像:

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

回答

0

這是比較容易的,但需要一些調整...

節點WP-CLI使用wp cli cmd-dump,以確定可用的命令,但該命令WordPress的運行前加載,所以它會只識別內置命令。

在短的TWEAK:

  • 參見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){