我在本地(MampPro)上运行WordPress 3.9,并在functions.php的一部分下面运行 包含在页脚中加载jquery和其他js的代码。 问题是我得到jquery加载两次。标题中有一个,页脚中有一个。我有点困惑,弄清楚为什么!
<?php
/**
* Enqueue JS - http://eamann.com/tech/dont-dequeue-wordpress-jquery/
*/
function zero_script() {
if (!is_admin()) {
wp_deregister_script('jquery');
//wp_register_script('modernizr', get_template_directory_uri() . '/dist/js/lib/modernizr- 2.7.0.min.js', array(), null, false);
wp_register_script('main_js', get_template_directory_uri() . '/dist/js/main.min.js', array('jquery'), '', true);
//wp_enqueue_script('modernizr');
wp_enqueue_script( 'jquery', '/wp-includes/js/jquery/jquery.js', '', '', true );
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'main_js' );
}
}
add_action('wp_enqueue_scripts', 'zero_script'); // initiate the function
答案 0 :(得分:3)
<强> ** ***解决强>
我正在从头开始构建WP主题,唯一安装的插件是“iThemes Security” 选中选项:
“排入jQuery的安全版本”
删除现有的jQuery版本并将其替换为安全版本(WordPress默认的版本)。
它被埋在所有选项中...我已取消选中该选项,现在我在页脚中调用了一次jquery。 第一个jquery调用(在头部由IThemes调用,第二个在我的页脚中调用) 我对文件进行了一些修改,以便更清楚地发生了什么:
<?php
/**
* Enqueue JS - http://eamann.com/tech/dont-dequeue-wordpress-jquery/
*/
function zero_script() {
if (!is_admin()) {
//Call Modernizr
//wp_register_script('modernizr', get_template_directory_uri() . '/dist/js/lib/modernizr-custom.min.js', array(), null, false);
//wp_enqueue_script('modernizr');
//Call JQuery
wp_deregister_script('jquery');
wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', '', '', true);
wp_enqueue_script( 'jquery' );
//Call Custom js file
wp_register_script('main_js', get_template_directory_uri() . '/dist/js/main.min.js', array('jquery'), '', true);
wp_enqueue_script( 'main_js' );
}
}
add_action('wp_enqueue_scripts', 'zero_script'); // Initiate the function
答案 1 :(得分:1)
尝试取出wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery', '/wp-includes/js/jquery/jquery.js', '', '', true );
到
wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', '', '', true );
并保持
wp_enqueue_script( 'jquery' );
好的EDIT2:
wp_deregister_script('jquery');
wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', '', '', true );
wp_register_script('main_js', get_template_directory_uri() . '/dist/js/main.min.js', array('jquery'), '', true);
wp_enqueue_script( 'main_js' );
编辑:3
function zero_script() {
wp_deregister_script('jquery');
wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', '', '', true );
if (!is_admin()) {
wp_register_script('main_js', get_template_directory_uri() . '/dist/js/main.min.js', array('jquery'), '', true);
wp_enqueue_script( 'main_js' );
}
}
答案 2 :(得分:1)
wp_enqueue_script( 'jquery', '/wp-includes/js/jquery/jquery.js', '', '', true );
wp_enqueue_script( 'jquery' );
你只需要
wp_enqueue_script( 'jquery' );
因为wordpress已准备好使用jquery:)