web-dev-qa-db-fra.com

mettre en file d'attente et localiser le script en pied de page

J'ai un script qui doit être exécuté dans mon pied de page, après la déclaration de certaines variables. Cela fonctionne si je mets juste le code directement dans mon fichier de pied de page, mais je pense que les meilleures pratiques dictent que je devrais le faire via functions.php et wp_localize_script.

Malheureusement ça ne marche pas; le script est toujours affiché dans l'en-tête. Des idées sur où je vais mal? Merci d'avance pour votre aide!

add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_front_page_scripts' );

function mytheme_enqueue_front_page_scripts() {
     wp_register_script('flowplayer_object',                    
        get_bloginfo('stylesheet_directory') . '/_/js/flowplayer/flowplayer-object-creator.js' );

     // last 'true' in wp_enqueue_script should force this into footer, right?
     wp_enqueue_script( 'flowplayer_object','','',true, true );

     $data = array( 'my_stylesheet_path' => __( get_bloginfo('stylesheet_directory') ) );
     wp_localize_script( 'flowplayer_object', 'my_data', $data );
}
3
Michelle

Vous devriez le configurer pour qu'il apparaisse dans le pied de page avec le registre, ainsi votre code devrait ressembler à ça

wp_register_script(
    'flowplayer_object',
    get_bloginfo( 'stylesheet_directory' ) . '/_/js/flowplayer/flowplayer-object-creator.js',
    array(), // these are your dependencies, if you need jQuery or something, it needs to go in that array
    false, // set a version if you want
    true // this will put it in the footer
);

wp_enqueue_script( 'flowplayer_object' );
4
mor7ifer