Загрузка пользовательских файлов JavaScript в админ-панели виджетов Wordpress - PullRequest
2 голосов
/ 30 ноября 2010

Я пишу новый плагин Wordpress, который включает в себя виджет.Для параметров конфигурации виджета требуется, чтобы код jQuery извлекал их со стороннего сервера через JSONP и прикреплял события таким образом, чтобы при изменении одного раскрывающегося списка, например, категории, динамически изменялось содержимое другого раскрывающегося списка, например подкатегории.Чтобы достичь этого эффекта, мне нужно загрузить некоторые пользовательские файлы 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 Ответ

1 голос
/ 30 ноября 2010

Возможно, потому что хук admin_head слишком поздно ставить в очередь - попробуйте вместо этого использовать load-widgets.php (это также будет означать, что ваши скрипты не появляются на каждой странице администратора!).

И как примечание: вам не нужно регистрироваться, а затем ставить в очередь - вы можете сделать оба за один звонок;

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'));
...