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.