WordPress上的Jquery仍然在标题中加载

时间:2014-04-20 20:41:25

标签: jquery wordpress

我在本地(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

3 个答案:

答案 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:)