web-dev-qa-db-fra.com

Mise en file d'attente de fichiers javascript

J'essaie de mettre en file d'attente un fichier JS (situé dans /js/example-script.js) uniquement pour obtenir une alerte lors du chargement de la page.

Quelqu'un peut-il me dire ce que je fais mal?

Dans mon exemple-script.js:

jQuery(document).ready(function($) {
  alert("hi");
});

Et dans mon fichier de fonctions:

function my_theme_scripts() {
    wp_enqueue_script( 'example-script', get_template_directory_uri() . '/js/example-script.js', array( 'jquery' ), '1.0.0', true );
}

add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );

jQuery est chargé dans mes sources, alors ce n'est pas le problème ...

1
JohnG

Utilisez-vous un thème pour enfants? Dans ce cas, vous devez utiliser get_stylesheet_directory_uri() au lieu de get_stylesheet_template_uri() qui renvoie le thème parent uri https://developer.wordpress.org/reference/functions/get_template_directory/#usage

1
CRavon

Exemple pour les thèmes

Je recommanderais d'utiliser wp_enqueue_script avec get_theme_file_uri ceci permet aux thèmes enfants de remplacer ce fichier.

fonction get_theme_file_uri ()

Recherche dans le répertoire de la feuille de style avant le répertoire du modèle afin que les thèmes hérités d'un thème parent puissent simplement remplacer un fichier.

wp_enqueue_script( 'example-script', get_theme_file_uri( '/js/example-script.js' ), array('jquery'), null, true );


Exemple pour les plugins

wp_enqueue_script( 'example-script', plugins_url('/js/example-script.js', __FILE__), array(), null );
1
Remzi Cavdar

Toutes les réponses sont correctes - dans mon cas, je l'avais bien fait, mais je n'avais pas chargé le WP Footer, malgré l'affichage de jQuery dans mes sources. Dès que j'ai ajouté à get_footer (), tout a bien fonctionné.

0
JohnG