Come accodare JavaScripts in un plugin


14

Sto lottando molto questa volta lavorando per includere un file JavaScript nella cartella dei plugin.

Sto cercando di creare un plug-in trasferendo i file dei widget dalla directory dei temi. Ho copiato il file del widget, ma quel file del widget dipendeva da un file JavaScript, quindi ho creato una cartella / js / nella directory dei plugin. dove è ospitato questo file "jquery.repeatable.js"

Ho usato questo codice, ma non sembra includere il file 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');

Ho cercato questo nel forum- /programming/31489615/call-a-js-file-from-a-plugin-directory

Ma ancora non è stato utile.

Riassumo la mia domanda. Nella mia directory dei plugin c'è un file js sotto questa cartella - / js /

Desidero includerlo qual è il processo corretto, devo registrare anche qualcosa?

C'è qualcosa di sbagliato in questa porzione - 'admin_enqueue_scripts'?


Risposte:


30

Il tuo codice sembra corretto, ma caricherà lo script solo nell'area di amministrazione perché stai accodando lo script in admin_enqueue_scriptsazione .

Per caricare lo script in frontend, utilizzare wp_enqueue_scriptsaction (che non è la stessa wp_enqueue_script()funzione ):

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

Inoltre, quello script sembra dipendere da jQuery, quindi dovresti dichiarare che dependencie o lo script possono essere caricati prima di jQuery e non funzioneranno. Inoltre, consiglio vivamente di dichiarare la versione dello scripot. In questo modo, se aggiorni lo script a una nuova versione, il browser lo ricaricherà e scarterà la copia che potrebbe avere nella cache.

Ad esempio, se la versione dello script è 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');

Se vuoi caricarlo nell'area di amministrazione:

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

AGGIORNAMENTO:

Usa questo codice invece

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

Il terzo parametro è dichiarare la dipendenza e il quarto è definire la versione.

Impostare il 5o parametro di wp_enqueue_script()a true. Questo significa che questo file verrà caricato nel piè di pagina.


Il terzo parametro di wp_enqueue_script()è di dichiarare le dipendenze degli script. Il quinto parametro è quello da scegliere se si desidera caricare lo script nel piè di pagina o nell'intestazione. Comunque, non credo che il posto da caricare faccia la differenza.
cybmeta,

Grazie. Ho letto da qualche parte in qualche altro plugin che qualcuno sta facendo in questo modo - wp_enqueue_script ('zumper', get_template_directory_uri (). '/Js/jquery.zumper.min.js',array('jquery'),false,true); Hai detto che l'impostazione 3rd su true significa che verrà caricata in piè di pagina, quindi cosa significa questa falsa, vera combinazione?
Il WP intermedio

Ho aggiornato la mia risposta. Funziona?
mukto90,

1

Normalmente uso il metodo plugins_url () per ottenere accodamento.

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');
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.