WordPress jQuery与插件冲突

时间:2011-01-30 作者:Redlist

嘿,伙计们,提前谢谢你们的帮助。我已经做了我的研究,我有点困惑。。。

我正在为一个客户建立一个Wordpress网站,它将有一个电子商店。我正在使用wp电子商务。所有存储页面都加载了javascript错误:

http://www.thecollectiveclothingco.com/products-page/t-shirts/

jQuery("form.product_form").livequery is not a function
[Break On This Error] jQuery("form.product_form").livequery(function(){ 
在经历了一段漫长的谷歌时代之后,我相信我已经将这个问题诊断为脚本冲突。换句话说,无论是WP还是插件本身都在提供jquery,我还将它包含在站点上的其他一些东西中。当我删除jquery脚本调用时,问题就消失了,存储工作正常。但我需要那个jquery。。。

我已经阅读了有关使用WP Enque解决问题的内容:

function my_init_method() {
    if (!is_admin()) {
        wp_deregister_script( \'jquery\' );
        wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js\');
        wp_enqueue_script( \'jquery\' );
    }
}    
add_action(\'init\', \'my_init_method\');php wp_head(); 
我相信我做得对,但似乎没有解决任何问题。

有什么想法吗?再次感谢。

编辑:

好吧,我想出来了。。。是排队脚本解决了问题。I wp(水头);必须在注销和排队部分之前到达。我一定是把文件看错了。下面是我添加到标题中的内容:

<?php
wp_head();
wp_deregister_script(\'jquery\');
wp_enqueue_script(\'jquery\', MYURL .\'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js\', FALSE, \'1.4.4\');
 ?>

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

目前,站点上加载了两个jQuery副本:

  1. 在标题中,jQuery与WordPress捆绑在一起,可能是某个插件请求的

    如果您可以使用捆绑副本,则需要注册/排队脚本并声明jquery 在依赖项中,请参见法典:wp_register_script(), $deps 参数

您的代码似乎很好,但最后的代码除外php wp_head();, php 毫无意义,而且wp_head() 呼叫应在主题中。

SO网友:Judd

在这家伙的网站上有一个很好的解决方案:http://www.mogmachine.com/stop-wordpress-loading-jquery-in-wp_head/

这可以通过取消注册jquery、调用自己的源代码、在函数中重新注册jquery命令来解决。主题中的php。您可以通过调用自己的插件而不是WP来避免插件和冲突。

为我工作。

结束

相关推荐

创建不带jQuery的模式对话框

我正在编写一个插件,它依赖于屏幕空间的模式对话框。现在我正在使用jQuery创建对话框,但我希望有一种更好地集成到管理主题中的方法。显然,WP必须有某种本机对话系统(用于上传)。如何访问它?