wordpress上的Jquery仍在头中加载
我在本地(MampPro)上运行WordPress 3.9,在functions.php的一部分下面运行 包含在页脚中加载jquery和其他js的代码。 问题是我让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()) {
<?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时失去理智。。。。。