2016-04-16 11 views
0

私はWordPressプラグインを開発しています。私はアクションフック関数のコールバックで変数を渡したいと思います。私のコードは以下の通りです。アクションの変数を渡すフック

class myplugin { 

    function __construct() { 
     add_action('wp_loaded', array($this, 'init')); 
    } 

    public function init() { 
     add_action('admin_enqueue_scripts', array($this, 'admin_scripts')); 
     //what I want is to pass the argument $mode in admin_scripts method to load only certain script according to the argument passed to method 
     //add_action('admin_enqueue_scripts', array($this, 'admin_scripts('caledar')')); ==> which will only load calendar script 
    } 

    public function admin_scripts($mode) { 
     switch($mode){ 
      case 'calendar': 
      wp_enqueue_script('calendar-script', PLUGIN_URL . '/js/calendar.js', array('jquery'), '1.0.0'); 
      break; 
      case 'alert': 
      wp_enqueue_script('alert-script', PLUGIN_URL . '/js/alert.js', array('jquery'), '1.0.0');  
      break; 
     } 
    } 
} 
new myplugin(); 

答えて

0

do_actionはフックを変更するために使用され、以下のコードでも試したことがわかります。

function admin_scripts($mode) { 
    switch($mode){ 
     case 'calendar': 
     wp_enqueue_script('calendar-script', PLUGIN_URL . '/js/calendar.js', array('jquery'), '1.0.0'); 
     break; 
     case 'alert': 
     wp_enqueue_script('alert-script', PLUGIN_URL . '/js/alert.js', array('jquery'), '1.0.0');  
     break; 
    } 
}  
add_action('load_adminscript', 'admin_scripts', 10, 1); 
do_action('load_adminscript', $a = 'calendar'); 

これはまったく機能しません。

+0

わかりませんが、フックで渡したいすべてのデータを処理するグローバル変数を宣言する必要があると思います... – LoicTheAztec

関連する問題