web-dev-qa-db-fra.com

Comment ajouter du javascript juste avant la balise de fermeture du corps dans le pied de page de WordPress

Je suis les conseils d'autres personnes ici à propos de l'ajout de mon fichier js avant la balise de fermeture du corps, mais cela ne semble pas fonctionner pour moi.

Si quelqu'un aurait la gentillesse de vérifier cela pour moi s'il vous plaît?

<?php
  /*load the js file into the footer*/
  function myscript() 
  {
   if( wp_script_is( 'jquery', 'done' ) ) {
  ?>
     <script type="text/javascript" src="js/scripts.js"></script>
  <?php
  }
 }
  add_action( 'wp_footer', 'myscript' );
?>

Merci beaucoup

EDIT: --------------------------------------------- ---

C'est la solution courte .. <script language="javascript" src="<?php bloginfo('template_directory'); ?>/js/scripts.js"></script>

pas la bonne réponse si est-ce?

EDIT ---------------------------------------------- -----

C’est ce que j’essaie d’utiliser sur la base des WP exemples de codex et de vos arguments, Fischi, mais je pense que je fais toujours quelque chose de mal.

function my_scripts_method() {
wp_enqueue_script(
    'myscript',
    get_bloginfo('template_directory') . '/js/scripts.js',
    array( 'jquery' ), 
    '', 
    true
);
 }    

 add_action('wp_enqueue_scripts', 'my_scripts_method');

Le fichier ne se charge toujours pas dans le pied de page.

5
SixfootJames

Vous devriez toujours ajouter du javascript (et des styles) avec la fonction Wordpress wp_enqueue_script()

Fonctionne comme ceci:

wp_enqueue_script( 
 $handle // the name of your enqueued file, in your case 'myscript'
,$src    // source of your file, can be external, or for your example: get_bloginfo('template_directory') . '/js/scripts.js'
,$deps   // does your javascript depend on another javascriptfile? for example jquery? pass an array of arguments specifying all the dependencies: array( 'jquery' )
,$ver   // version number of your javascript
,$in_footer // this is what you need: true
);

une fois que $in_footer a été défini sur true, il est mis en file d'attente dans l'action wp_footer(), généralement juste avant la fin de la balise body.

alors, pour vous:

wp_enqueue_script( 'myscript', get_bloginfo('template_directory') . '/js/scripts.js', array( 'jquery' ), '', true );

fait le tour.

Remarque: Tous les thèmes ne font pas (même si tous les thèmes devraient) appeler wp_footer(); dans leur pied de page/juste au-dessus de la balise finale </body>.

14
fischi