带有句柄jquery的wp_localize_script – wordpress脚本

我正在寻找下一个解决方案。 我想要更快的网站,所以我将所有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句柄的“jquery”。

一切都很好,除了本地化。 当我将脚本句柄重命名为“custom-jquery”时,wp_localize_script可以正常工作。

我使用WP 4.0.1。 感谢帮助

重要! wp_localize_script()必须在使用wp_register_script()wp_enqueue_script()注册附加到的脚本后调用。

更多信息

我问了一个类似的问题并得到了解决方案:

wp_localize_script无法使用jquery句柄

基本上这与WP使用jQuery句柄的方式有关,你需要

  1. 注销jquery
  2. 注销jquery-core
  3. 在脚本上使用jquery-core句柄
  4. 在末尾注册jquery,依赖于jquery-core并为$ scr属性传递false

码:

 wp_register_script( 'jquery', false, array( 'jquery-core' ), false, true );