wordpress上的Jquery仍在头中加载

wordpress上的Jquery仍在头中加载,jquery,wordpress,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()) {

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

尝试取出
wp\u-enqueue\u脚本('jquery')

编辑:尝试更改
wp_enqueue_脚本('jquery','/wp包括/js/jquery/jquery.js','','true)

wp\u register\u脚本('jquery','wp includes/js/jquery/jquery.js','true')

保持

wp_enqueue_脚本('jquery')

好的,编辑2:

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' );
}
}

你叫它两次

 wp_enqueue_script( 'jquery', '/wp-includes/js/jquery/jquery.js', '', '', true );
 wp_enqueue_script( 'jquery' );
你只需要

    wp_enqueue_script( 'jquery' );

由于wordpress已经准备好使用jquery:)

**已解决***

我正在从头开始构建一个WP主题,唯一安装的插件是“iThemes安全” 选中该选项后:

“将安全版本的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

请参见编辑:)按正确的顺序将您的代码替换为我的编辑。如果它不起作用,我就不知所措:)第二个jquery是否会说
jquery migrate.min
?如果是这样,只需
wp_注销_脚本('jquery-migrate.min')
Last go,试试我的编辑3,确保你没有在其他地方注册jquery,或者其他脚本依赖于jquery并加载到标题中,确保你仔细检查了php页面,并且没有直接链接到标题中调用它。谢谢你的帮助啊哈,很好的一个家伙。尽管wordpress在wordpress stack的负责人说取消注册是个坏主意,因为插件开发人员将他们的插件建立在wordpress的核心版本上。如果我是你,我会删除jquery的注销、注册和排队。只需让“main_js”依赖于jquery和
array(“jquery”)
,就像您已经拥有的一样,在末尾使用
true
。这同样会加载jquery,这是应该做的,并为您节省3行代码:)但这取决于您。此外,我相信您只是取消注册相同的核心wordpress jquery并再次注册它,所以这是毫无意义的。嗨,伙计,顶部链接的帖子与注销worpress版本的jquery并注册一个新版本(通常来自google cdn)的实践有关……我正在做的是使用一个技巧在页脚中调用jquery的wp版本。如果单击jquery路径,您可以看到这是WP正在使用的缩小版本。因此,当你升级WP时,如果他们更新JQuery版本,你可以免费获得更新最新的版本…插件的开发人员可以使用最新的WP JQuery版本更新插件通常我会使用一两个代码中手工制作的JQuery插件,所以更新它们由我来决定,因此,他们可以在另一端使用最新版本的jQuery,使用WP jQuery版本,您不必在试图了解某个特定插件当时需要哪个版本的jQuery时失去理智。。。。。