WooThemes PremiumNews主题jQuery与WordPress 3.2冲突

时间:2011-07-05 作者:Niraj Chauhan

今天早上我更新了我的wp,之后我的站点上的jquery很少出现问题。

我正在使用woo主题高级报纸主题。

升级后,类别下拉菜单(superfish菜单)停止工作。我在使用lightbox插件制作图像,结果停止了工作。

我停用了所有插件并检查了主题,但superfish仍然不起作用,我用最新的主题框架更新了主题框架,但仍然没有效果。

有人能帮我吗?

我的网站URL是:http://webstutorial.com/and我使用的主题是:http://demo.woothemes.com/?name=premiumnews

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

问题在于主题。在主题演示中,superfish下拉列表不起作用,出于某种原因,主题从主题目录加载jquery 2次版本1.3.1,从WordPress includes目录加载jquery 1.6.1。

您的站点实际加载jquery 3次。

我会联系主题支持。

SO网友:Magellan

进入收割台。php文件和颠倒以下行的顺序使下拉列表在我的网站上工作,所以我想现在已经足够好了。它仍然破坏了我的特色内容库插件,但我稍后会解决这个问题。

反转这些:

<script type="text/javascript" src="<?php bloginfo(\'template_directory\'); ?>/includes/js/jquery-1.3.2.min.js"></script>

<?php wp_head(); ?>
因此,wp\\U头代码排在第一位。

EDIT

将脚本排入队列的正确位置是functions.php, 而不是直接在文档头中。

例如:

function my-theme_enqueue_scripts() {
    // only on the front end; don\'t mess with Admin scripts
    if ( ! is_admin() ) {
        // Only enqueue the core-bundled jQuery script
        wp_enqueue_script( \'jquery\' );
    }
}
// Enqueue at proper hook
add_action( \'wp_enqueue_scripts\', \'my-theme_enqueue_scripts\' );
备注:

省略jquery-1.3.2的硬编码链接。完全最小js您不想将1.6.1版(与WordPress捆绑)和1.3.2版(与主题捆绑)都排队。只需使用核心捆绑版本如果主题正在添加任何其他脚本(例如SuperFish),那么这些脚本也应该正确排队。非核心捆绑脚本只需注册即可排队。要修改以前的函数,请执行以下操作:

function my-theme_enqueue_scripts() {
    // only on the front end; don\'t mess with Admin scripts
    if ( ! is_admin() ) {
        // Only enqueue the core-bundled jQuery script
        wp_enqueue_script( \'jquery\' );
        // Register our superfish script, dependent upon jquery
        wp_register_script( \'superfish\', get_template_directory_uri() . \'/includes/js/superfish.js\', \'jquery\' );
        // Enqueue superfish script
        wp_enqueue_script( \'superfish\' );
    }
}
// Enqueue at proper hook
add_action( \'wp_enqueue_scripts\', \'my-theme_enqueue_scripts\' );
这将迫使WordPress在jQuery排队后将SuperFish排队。

对文档头中的所有硬编码脚本链接重复此操作。

SO网友:Chip Bennett

WooThemes是一家商业主题开发商店;他们是唯一可以纠正主题jQuery冲突的人。我建议联系他们的官方支持:

http://www.woothemes.com/support/

EDIT

引用OP在接受答案中的评论:

“你说得对,他们是唯一真正能解决这个问题的人。”。

由于WooThemes是商业主题,任何尚未购买该主题的人(如所有WPSE志愿者)都无权访问主题模板文件。因此,虽然我们可以看到主题的渲染输出,但我们实际上看不到导致jQuery冲突的底层代码。

我们可以猜测,但不能保证我们是正确的。因此,我完全不同意WooThemes的支持是唯一能够解决这个问题的人这一说法“显然是不真实的”。

SO网友:Magellan

我的两个网站上也有这个问题。我发现头中的代码。根据一些jQuery网站的说法,my theme(Woothemes原始高级新闻的定制版本)的php文件不“正确”。它是这样说的:

<script type="text/javascript" src="<?php bloginfo(\'template_directory\'); ?>/includes/js/jquery-1.3.2.min.js"></script><?php wp_head(); ?>
我读到的站点说,您应该在wp\\U头代码之前插入下面的代码,然后将jquery请求放在wp\\U头代码之后。本质上,它应该是这样的:

<?php wp_enqueue_script("jquery"); ?><?php wp_head(); ?><script type="text/javascript" src="<?php bloginfo(\'template_directory\'); ?>/includes/js/jquery-1.3.2.min.js"></script>
当我这样做的时候,我的superfish下拉列表工作得很好(或者和昨天一样好)。不幸的是,当我这样做的时候,它破坏了我的图形滑块(由特色内容库插件提供支持)。

这是我在连续几个小时的努力之后所能达到的程度…:P

SO网友:metaprinter

演示站点也被破坏:http://demo.woothemes.com/?name=premiumnews

我已经做了几个小时了。在wordpress上找到此。组织论坛:

确保您正在使用

jQuery(document).ready(function($) {
而不是

$(document).ready(function() {
如果这不能解决问题,请确保您的手风琴菜单脚本可以与jQuery 1.4.2配合使用,并且不需要更早的jQuery版本。一些旧脚本需要早期版本。

SO网友:Matt

只是想在这里插嘴。。。为了解决这个问题,我必须先注销WordPress的jquery副本,然后注册一个由谷歌托管的jquery版本1.4.4副本,以便我的所有脚本都能正常工作。

结束

相关推荐

向子主题添加一些使用jQuery的自定义Java脚本的最佳方法

我使用了默认的二十十主题,并且我做了一个子主题和一些CSS调整,基本上就是这样。现在我想做两件事使主题加载最新的jQuery,并使用Google CDN加载它</添加一个javascript文件,该文件将加载到每个页面上</这样做的最佳方式是什么?我是一个完全的WordPress新手,所以我真的不知道该怎么做。