11

私のテーマには次のコードがありますが、変数functions.phpを呼び出すと. 私は何を取りこぼしたか?console.log(pw_script_vars);undefined

function mytheme_enqueue_scripts(){
    wp_enqueue_script( 'jquery' );

}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_scripts');

function pw_load_scripts() {

    wp_enqueue_script('pw-script');
    wp_localize_script('pw-script', 'pw_script_vars', array(
            'alert' => __('Hey! You have clicked the button!', 'pippin'),
            'message' => __('You have clicked the other button. Good job!', 'pippin')
        )
    );


}
add_action('wp_enqueue_scripts', 'pw_load_scripts');
4

4 に答える 4

22

に JavaScript ファイルが含まれていませんでしたwp_enqueue_script

function pw_load_scripts() {

    wp_enqueue_script('pw-script', get_template_directory_uri() . '/test.js');
     wp_localize_script('pw-script', 'pw_script_vars', array(
            'alert' => __('Hey! You have clicked the button!', 'pippin'),
            'message' => __('You have clicked the other button. Good job!', 'pippin')
        )
    );


}
add_action('wp_enqueue_scripts', 'pw_load_scripts');

test.jsテーマディレクトリに空のファイルを作成すると、それが機能します。

ソースコードを見ると、次のことがわかります。

<script type='text/javascript'>
/* <![CDATA[ */
var pw_script_vars = {"alert":"Hey! You have clicked the button!","message":"You have clicked the other button. Good job!"};
/* ]]> */
</script>

その後pw_script_vars.alert、コンソールに入力して"Hey! You have clicked the button!"メッセージを取得できます。

于 2013-04-15T09:41:32.067 に答える
4

追加の空の JS ファイルを作成する必要なく、jQuery のローカライズを試みることもできます。

    wp_localize_script('jquery', 'pw_script_vars', array(
        'alert' => __('Hey! You have clicked the button!', 'pippin'),
        'message' => __('You have clicked the other button. Good job!', 'pippin')
    )
);

それは私にとって魅力のように機能します。それが役に立てば幸い。

于 2015-05-07T08:28:37.820 に答える