2010-11-30 10 views
2

ウィジェットを含む新しいWordpressプラグインを作成しています。ウィジェットの設定オプションでは、JSONPを介してサードパーティのサーバからjQueryコードをフェッチし、1つのドロップダウンが変更された場合、それが別のドロップダウン、例えばサブカテゴリの内容を動的に変更するようイベントをアタッチする必要があります。Wordpressウィジェットの管理パネルにカスタムJavaScriptファイルをロードする

この効果を得るには、ウィジェット管理パネル(ユーザーが管理パネルの関連するサイドバーにウィジェットをドラッグアンドドロップした後に表示されるオプション)でカスタムJavaScriptファイルを読み込む必要があります。

これを行う正しい方法は何ですか?私は私のプラグインクラスに次のコードを試してみたが、ファイルをロードしていないようです:事前に

class MyPlugin { 

    function __construct() { 
     add_action('admin_init', array(&$this, 'admin_init')); 
     add_action('admin_head', array(&$this, 'admin_load_scripts')); 
    } 

    function admin_init() { 
     wp_register_script('jsonp', 'js/jquery.jsonp-2.1.2.min.js', array('jquery')); 
     wp_register_script('my_utils', 'js/my-utils.js', array('jquery', 'jsonp')); 
    } 

    function admin_load_scripts() { 
     wp_enqueue_script('jsonp'); 
     wp_enqueue_script('my_utils'); 
    } 

} 

感謝を!

答えて

1

フックadmin_headがキューに遅すぎるので、それはおそらくです - (!これはまた、あなたのスクリプトがすべての管理ページに表示されませんを意味します)の代わりにload-widgets.phpを使用してみてください。

サイドノートとして登録してエンキューする必要はありません。両方を1回のコールで行うことができます。

wp_enqueue_script('jsonp', 'js/jquery.jsonp-2.1.2.min.js', array('jquery')); 
wp_enqueue_script('my_utils', 'js/my-utils.js', array('jquery', 'jsonp')); 
+2

load-widgetsphpアクションを使用すると、widgets_initを使用しても機能しませんでした。とにかくアドバイスをありがとう。 –

関連する問題