Как поставить JavaScripts в плагин


14

В этот раз я много работаю над включением файлов JavaScript в папку плагинов.

Я пытаюсь создать плагин путем переноса файлов виджетов из каталога тем. Я скопировал файл виджета, но этот файл виджета зависел от файла JavaScript, поэтому я создал папку / js / в каталоге плагинов. где размещены эти файлы "jquery.repeatable.js"

Я использовал этот код, но он не включает файл js -

function Zumper_widget_enqueue_script()
{   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js' );
}
add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script');

Я искал это на форуме - /programming/31489615/call-a-js-file-from-a-plugin-directory

Но все равно это не помогло.

Я переформулирую свой вопрос. В моем каталоге плагинов есть файл js в этой папке - / js /

Я хочу включить его, каков правильный процесс, нужно ли что-то регистрировать?

Что-то не так с этой частью - 'admin_enqueue_scripts'?


Ответы:


30

Ваш код кажется правильным, но он загрузит скрипт только в административной области, потому что вы ставите скрипт в admin_enqueue_scriptsдействие .

Чтобы загрузить сценарий во внешнем интерфейсе, используйте wp_enqueue_scriptsдействие (которое отличается от wp_enqueue_script()функции ):

function Zumper_widget_enqueue_script() {   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js' );
}
add_action('wp_enqueue_scripts', 'Zumper_widget_enqueue_script');

Кроме того, кажется, что этот скрипт зависит от jQuery, поэтому вы должны объявить, что зависимость или скрипт могут быть загружены до jQuery, и он не будет работать. Также настоятельно рекомендую объявить версию скрипта. Таким образом, если вы обновите скрипт до новой версии, браузер снова загрузит его и откажется от копии, которая может быть в кеше.

Например, если версия скрипта 1.0:

function Zumper_widget_enqueue_script() {   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js', array('jquery'), '1.0' );
}
add_action('wp_enqueue_scripts', 'Zumper_widget_enqueue_script');

Если вы хотите загрузить его в админке:

function Zumper_widget_enqueue_script() {   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js', array('jquery'), '1.0' );
}
add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script');

1

ОБНОВЛЕНО:

Используйте этот код вместо

function Zumper_widget_enqueue_script()
{   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js', array('jquery'), '1.0.0', false );
}
add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script');

3-й параметр - для объявления зависимости, а 4-й - для определения версии.

Установите 5-й параметр wp_enqueue_script()в true. Это означает, что этот файл будет загружен в нижний колонтитул.


Третий параметр wp_enqueue_script()- объявить зависимости скрипта. Пятый параметр - это тот, который нужно выбрать, если вы хотите загрузить скрипт в нижний колонтитул или в верхний колонтитул. Во всяком случае, я не думаю, что место для загрузки имеет какое-либо значение.
cybmeta

Благодарю. Я где-то читал в каком-то другом плагине, что кто-то делает так - wp_enqueue_script ('zumper', get_template_directory_uri (). '/Js/jquery.zumper.min.js',array('jquery'),false,true); Вы сказали, что установка 3-го в true означает, что он будет загружен в нижний колонтитул, тогда что означает эта ложная, истинная комбинация?
WP Intermediate

Я обновил свой ответ. Это работает?
mukto90

1

Я обычно использую метод plugins_url () для достижения enqueue.

function Zumper_widget_enqueue_script()
{   
    wp_enqueue_script( 'my_custom_script', plugins_url('js/jquery.repeatable.js', __FILE__ ), '1.0.0', false );
}
add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script');
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.