web-dev-qa-db-fra.com

Comment mettre en file d'attente JavaScript dans un plugin

J'ai beaucoup de mal à travailler cette fois-ci sur l'inclusion de fichiers JavaScript dans le dossier du plugin.

J'essaie de créer un plugin en transférant des fichiers de widgets à partir du répertoire themes. J'ai copié le fichier de widget, mais ce fichier de widget dépendait d'un fichier JavaScript. J'ai donc créé un dossier/js/dans le répertoire du plugin. où ce fichier est hébergé "jquery.repeatable.js"

J'ai utilisé ce code, mais il ne semble pas inclure le fichier 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');

J'ai cherché cela sur forum- https://stackoverflow.com/questions/31489615/call-a-js-file-from-a-plugin-directory

Mais ce n'était toujours pas utile.

Je résume ma question. Dans mon répertoire plugin, il y a un fichier js sous ce dossier -/js /

Je souhaite l'inclure quel est le processus correct, dois-je enregistrer quelque chose aussi?

Quelque chose ne va pas avec cette partie - 'admin_enqueue_scripts'?

10
The WP Novice

Votre code semble correct, mais il ne chargera le script que dans la zone admin, car vous le mettez en file d'attente dans admin_enqueue_scripts action .

Pour charger le script dans le frontal, utilisez l'action wp_enqueue_scripts (qui n'est pas identique à la fonction 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');

En outre, ce script semble dépendre de jQuery. Vous devez donc déclarer que dependencie ou que le script peut être chargé avant jQuery et que cela ne fonctionnera pas. Aussi, je recommande fortement de déclarer la version du script. De cette façon, si vous mettez à jour le script vers une nouvelle version, le navigateur le téléchargera à nouveau et supprimera la copie qu'il pourrait avoir en cache.

Par exemple, si la version du script est 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');

Si vous voulez le charger dans la zone d'administration:

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

MIS À JOUR:

Utilisez ce code à la place

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

Le troisième paramètre consiste à déclarer la dépendance et le quatrième à définir la version.

Définissez le paramètre 5rd de wp_enqueue_script() sur true. Cela signifie que ce fichier sera chargé dans le pied de page.

1
mukto90