注意:我已经使用wp_dequeue_script
或wp_deregister_script
但没有成功
这是场景,我制作了一个使用 jquery-cycle2 的图像滑块插件,它成功运行。
有一个用户使用了wp主题,在主题中有一个jquery-cycle1
,现在当他安装我的插件jquery-cycle1和jquery-cycle2冲突时,当用户删除jquery-cycle1文件时,一切都很好,很完美,但我不想按用户删除文件。
现在我正在尝试当用户安装我的插件时,主题中的 jquery-cycle1 关闭或取消注册或停止其效果。
我成功从主题获取文件
if((file_exists($theme_file_path."/jquery.cycle.all.js"))){
echo "yes";
}
但是我不知道关闭jquery-cycle1文件或停止其效果。
最后一个选项: 我有最后一个解决方案,可以从主题中删除文件,但它是我的最后一个选择。
请提出任何建议,帮助我。
您必须在主题上放置不兼容通知。
无法尝试从服务器端检测脚本是否存在。 您可以通过 word press 方法检测排队的脚本,但是,这假设用户没有简单地使用 <script></script>
标记链接文件。 file_exists
方法假定文件存储在服务器本身上 - 它可以从 CDN 或其他服务器链接。
此外,无论您使用什么方法来检测和删除jQuery-Cycle
;您将破坏使用现有插件的站点上的任何功能。
因此,您能够设计的任何解决方案要么非常复杂,要么不够普遍,无法解释所有这些可能性。
您可以使用以下内容来阻止加载脚本
if (jQuery().cycle) {
// Script already loaded
console.log("Error: Another version of jQuery-Cycle is already loaded!");
} else {
// Load your script
}
但这无法卸载已加载的内容。
做一个简单的技巧。在 Cycle2 源中,将所有$.fn.cycle
替换为 $.fn.cycle2
,并).cycle(
).cycle2(
。我正在使用这里的源代码 http://malsup.github.io/jquery.cycle2.js
之后您可以像访问它一样
$("#id").cycle2({option})
这是一个演示 http://jsfiddle.net/33g6z79h/
在这里,我假设您没有使用循环事件 http://jquery.malsup.com/cycle2/api/#events并循环额外的过渡。如果您正在使用它,您可以为您的 cycle2 实现做一个小提琴,我很乐意为您提供帮助:)