如何从 wp 主题wp_dequeue_script或wp_deregister_script jquery(不受影响)


How to wp_dequeue_script or wp_deregister_script jquery (not effected) file from wp theme

注意:我已经使用wp_dequeue_scriptwp_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 实现做一个小提琴,我很乐意为您提供帮助:)