web-dev-qa-db-ja.com

スクリプトをフッターにエンキューしてローカライズする

いくつかの変数が宣言された後、私は自分のフッターで実行しなければならないスクリプトがあります。私が自分のフッターファイルに直接コードを入れるだけでうまくいきますが、ベストプラクティスはfunctions.phpとwp_localize_scriptを使って行うべきだと私は考えています。

残念ながらそれはうまくいきません。スクリプトは常にヘッダーに出力されます。どこで問題があるのですか?ご協力ありがとうございます。

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

あなたはそれをレジスタと一緒にフッターに表示するように設定すべきです、それであなたのコードはこのように見えるべきです:

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