DELETE wp_deregister_script(‘jQuery’)返回未显示的错误

时间:2014-03-04 作者:Nepo Znat

要注册脚本,我在函数中有此代码。php

function enqueue_scripts() {
          wp_deregister_script(\'jquery\');
          wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\');
          wp_register_script(\'flexslider\', get_stylesheet_directory_uri() . \'/js/flexslider.js\', \'jquery\', \'\', TRUE);

          wp_enqueue_script(\'jquery\');
          wp_enqueue_script(\'flexslider\');
}

add_action(\'wp_enqueue_scripts\',\'enqueue_scripts\');
问题是当我删除这些行时:

wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\');
该站点忽略从wordpress注册的jQuery。但在源代码中显示了脚本。

有人有主意吗?

1 个回复
最合适的回答,由SO网友:Sudeep K Rana 整理而成

Wordpress对jQuery使用无冲突模式,但在使用cdn链接加载jQuery文件时不使用冲突模式。

您应该这样使用它:

add_action( \'wp_enqueue_scripts\', \'load_custom_jquery\');
function load_custom_jquery(){
    wp_enqueue_script( \'custom_admin_jquery\', get_stylesheet_directory_uri().\'/js/flexslider.js\', \'jquery\' );
}
这么多就够了。无需其他注册、注销。此代码将加载您的自定义jquery。

在里面wp_enqueue_script 最后一个参数是jquery。这可以确保在加载自定义jquery之前加载jquery文件(可在wordpress安装中获得)。这是非冲突模式。建议只使用这种方式。否则,您可能会与默认jQuery文件发生冲突。

在custom\\u jQuery中编写jQuery代码时,还需要考虑一件事。js正在对jQuery命名空间进行别名处理,并使用:

jQuery( document ).ready(function( $ ) {
  // Code using $ as usual goes here.
});
代替

$( document ).ready(function() {
  //CODE
});
参考文献:

jQuery no conflict

jQuery Ready 给jQuery名称空间加别名

结束

相关推荐

JQuery与小部件页面冲突

我正在尝试创建一个小部件插件,它使用jQuery代码根据选择下拉菜单的所选选项显示/隐藏小部件表单中的div。我尝试实现的jQuery代码在其他地方都可以正常工作,但在widgets页面中,它使widgets无法工作(无法扩展或拖动)。这是我在JSFIDLE上的代码:http://jsfiddle.net/fj63g/111//* 更新*/完整的插件代码可在此处找到:http://jsfiddle.net/qNc62/