Utiliser wp_enqueue_script au lieu de wp_print_scripts, qui est dépréciée. Cette méthode s'avère la plus pratique à l'usage.
functions.php :
// ----------------------------------------------------------------------------- // Intégration correcte de javascript dans wordpress // Fonctions pour chargement conditionnel global $add_script_animation; $add_script_animation = false; add_action('init', 'register_my_script'); add_action('wp_footer', 'print_my_script'); function register_my_script() { wp_register_script('menu-script', get_template_directory_uri().'/js/menu.js', array('jquery'), null, true); wp_register_script('animation-script', get_template_directory_uri().'/js/animation.js', array('jquery'), null, true); } function print_my_script() { global $add_script_animation; wp_enqueue_script('menu-script');// On suppose que le menu sera chargé sur toutes les pages if($add_script_animation) { wp_enqueue_script('animation-script'); } }
Pour les scripts conditionnels, on ajoute ceci au début de la page :
global $add_script_animation; $add_script_animation = true;
Notre page javacsript de base en jQuery contiendra ceci pour tester :
jQuery(document).ready(function() { console.log('Yep'); });
Pour utiliser le raccourcis $ dans le code : http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_Wrappers
Version alternative :
// ----------------------------------------------------------------------------- // Intégration correcte de javascript dans wordpress // Fonctions pour chargement conditionnel add_action('init', 'register_javascript'); add_action('wp_footer', 'add_footer_js'); add_action('wp_head', 'add_header_js'); function register_javascript() { wp_enqueue_script('jquery'); wp_register_script('main-s', get_template_directory_uri().'/js/main.js', array('jquery'), null, true); wp_register_script('scroll-s', get_template_directory_uri().'/js/scroll.js', array('jquery'), null, true); wp_register_script('easing-s', get_template_directory_uri().'/js/jquery.easing.min.1.3.js', array('jquery'), null, false); wp_register_script('jcontent-s', get_template_directory_uri().'/js/jquery.jcontent.0.8.min.js', array('jquery'), null, false); } function add_footer_js() { wp_enqueue_script('easing-s'); wp_enqueue_script('jcontent-s'); echo <<<JAVASCRIPT <script> jQuery(document).ready(function() { jQuery('#wrap').fadeIn(1500); }); </script> <script type="text/javascript">jQuery('a[href^="#"]').bind('click',function(){return false;});</script> JAVASCRIPT; } function add_header_js() { wp_enqueue_script('main-s'); wp_enqueue_script('scroll-s'); echo <<<JAVASCRIPT <script type='text/javascript'> jQuery(document).ready(function() { jQuery('#toggle').hide(); jQuery('a#toggler').click(function() { jQuery('#toggle').slideToggle(400); return false; }); }); </script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-59251538-4', 'auto'); ga('send', 'pageview'); </script> JAVASCRIPT; }