Cum să puneți în coadă JavaScripts într-un plugin (WordPress, Dezvoltare Plugin, Wp Enqueue Script)

Intermediarul WP a intrebat.

Mă chinui mult de data aceasta să lucrez la includerea unui fișier JavaScript în dosarul plugin-ului.

Încerc să creez un plugin prin transferul fișierelor widget din directorul themes. am copiat fișierul widget, dar acel fișier widget depindea de un fișier JavaScript, așa că am creat un dosar /js/ în directorul plugin. unde acest fișiere este găzduit „jquery.repeatable.js”

Am folosit acest cod, dar nu pare să includă fișierul 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');

Am căutat acest lucru pe forum-https://stackoverflow.com/questions/31489615/call-a-js-file-from-a-plugin-directory

Dar totuși acest lucru nu a fost de ajutor.

Îmi resumați întrebarea. în directorul meu de plugin există un fișier js în acest dosar – /js/

Doresc să îl includ care este procesul corect, trebuie să înregistrez și eu ceva?

Este ceva în neregulă cu această porțiune -. 'admin_enqueue_scripts'?

Comentarii

  • Posibil duplicat al This doesnt work for Plugin get_template_directory_directory_uri() – -.  > Por Milo.
3 răspunsuri
cybmeta

Codul dvs. pare corect, dar va încărca scriptul doar în zona de administrare pentru că îl enqueați în admin_enqueue_scripts acțiune.

Pentru a încărca scriptul în frontend, folosiți wp_enqueue_scripts action (care nu este același lucru cu wp_enqueue_script() funcția):

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

De asemenea, scriptul pare să depindă de jQuery, așa că ar trebui să declarați această dependență sau scriptul poate fi încărcat înainte de jQuery și nu va funcționa. De asemenea, vă recomand cu tărie să declarați versiunea scriptului. În acest fel, dacă actualizați scriptul la o versiune nouă, browserul îl va încărca din nou și va renunța la copia pe care o are în memoria cache.

De exemplu, dacă versiunea scriptului este 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');

Dacă doriți să îl încărcați în zona de administrare:

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

mukto90

ACTUALIZAT:

Folosiți acest cod în loc

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

Al treilea parametru este pentru a declara dependența, iar al patrulea este pentru a defini versiunea.

Setați al 5-lea parametru din wp_enqueue_script() la true. Aceasta înseamnă că acest fișier va fi încărcat în footer.

Comentarii

  • Al treilea parametru din wp_enqueue_script() este pentru a declara dependențele scriptului. Al cincilea parametru este cel pentru a alege dacă doriți să încărcați scriptul în footer sau în antet. Oricum, nu cred că locul de încărcare are vreo importanță. –  > Por cybmeta.
  • Mulțumesc. Am citit undeva, într-un alt plugin, că cineva face așa – wp_enqueue_script(‘zumper’,get_template_directory_uri() . ‘/js/jquery.zumper.min.js’,array(‘jquery’),false,true); Ai spus că setarea 3rd la true înseamnă că se va încărca în footer, atunci ce înseamnă această combinație false,true? –  > Por The WP Intermediate.
  • Mi-am actualizat răspunsul. Funcționează? –  > Por mukto90.
Zaheer Abbas

În mod normal, folosesc plugins_url() pentru a obține 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');