我正在寻找下一个解决方案。我想要更快的网站,所以我将所有JS连接到一个文件并放在页脚中。我的一个js是jQuery,我使用下一个钩子和函数:
if (!function_exists("ef_theme_scripts")) {
function ef_theme_scripts() {
wp_deregister_script('jquery');
wp_register_script('jquery', get_template_directory_uri() . '/js/min/script.min.js', null, null, true);
wp_enqueue_script('jquery');
$params = array(
'ajax_url' => admin_url('admin-ajax.php'),
'ajax_nonce' => wp_create_nonce('user_nonce'),
);
wp_localize_script( 'jquery', 'ajax_object', $params );
}
}
add_action('wp_enqueue_scripts', 'ef_theme_scripts');
我打电话给我的手柄" jquery"因为可能有一些脚本(例如来自插件)需要使用jquery所以我需要添加一个名为this handle" jquery"。
除了本地化之外,一切都很有效。当我将脚本句柄重命名为" custom-jquery"然后wp_localize_script没有问题。
我使用WP 4.0.1。谢谢你的帮助
答案 0 :(得分:0)
重要! wp_localize_script()
必须在使用wp_register_script()
或wp_enqueue_script()
注册附加到的脚本后调用。
答案 1 :(得分:0)
我问了一个类似的问题,并在这里得到了有效的解决方案:
wp_localize_script not working with jquery handle
基本上这与WP使用jQuery句柄的方式有关,你需要
代码:
wp_register_script( 'jquery', false, array( 'jquery-core' ), false, true );