0

我目前正在将一个名为Rekreato的 HTML5 模板转换为 wordpress 主题。我已经设法设置了一个简单的主题,但是每当我使用 jQuery 脚本激活任何插件时,我的一些 jQuery 效果都会被破坏。具体来说,在 Firefox 调试器中,我得到 -

TypeError: jQuery.easing[jQuery.easing.def] 不是函数@ jquery.easing.1.3.js:46

这是有问题的页面。您可以看到大约一半的地方有一个不起作用的图像滑块。我已经激活了一个名为 WP eMember 的插件。

我已经尝试了很多事情,比如将我的主题配置为子主题,将 jquery.easing.1.3 包装在一个文档就绪函数中,以及在代码中移动脚本调用,但无济于事。我什至不确定缓动脚本有问题。答案可能正盯着我看,但我似乎无法弄清楚。提前谢谢了。

编辑:来自 markratledge 的极好建议。我使用 wp_register_script() 和 wp_enqueue_script() 将脚本放在 functions.php 中。起初我很困惑,甚至更多的东西被破坏了。进一步阅读,我看到由于 Wordpress 在其内置的 jQuery 库周围使用了 noConflict 包装器,因此 $ 快捷方式不可用。因此,我检查了所有在检查器中显示错误的脚本,并将“$”与“jQuery”交换。瞧!一切都在颤抖。再次感谢!

4

1 回答 1

1

查看Function Reference/wp enqueue script « WordPress Codex,了解如何在 WordPress 主题中加载 JS 并避免 jQuery 错误,并提供示例。

您通过直接链接加载了一堆 jQuery,但随后wp_head进来并为插件加载了更多 jQuery,并且发生了冲突。即,两个不同的主要 jQuery 库;检查 Firefox 控制台以获取所有正在加载的 JS 的列表。

从那个文档:

wp_enqueue_script如果尚未包含脚本并且所有依赖项都已注册,则根据脚本依赖项在正确的时间将脚本文件链接到生成的页面。您可以将脚本与先前使用 wp_register_script() 函数注册的句柄链接,或者为该函数提供链接脚本所需的所有参数。

这是将 JavaScript 链接到 WordPress 生成页面的推荐方法。

于 2013-05-09T04:41:45.557 回答