隽永东方设计工作室
Eastern Design Studio Menu

BuddyPress载入的jQuery easing与常用的slideshow插件冲突的终极解决方案

1 星2 星3 星4 星5 星
(2 票, 评分: 5.00 总分 5)  

如何解决此类冲突呢?

最近在优化WordPress的过程当中,发现BuddyPress载入的global.js里边包含的 jQuery easing 脚本与其他很多常用的 Slideshow Gallery, Easy Nivo Slider等插件水火不相容,两者无论如何都无法共存,这样就得取舍了,要么卸载BuddyPress,要么抛弃Slideshow,但是这两种显然都不是理想的解决方案,那么换个思路试试看,如何能让两者不一起出现,于是找到了一款很不错的插件:Plugin Organizer 通过这款插件可以控制任意一个页面需要载入哪些插件,不要载入哪些插件,这样我只需要把分别需要用到BuddyPress和SlideShow的页面完全独立开来,让他们彼此没有碰到一块的机会就不会出现冲突了,当然这个解决方案还是不够完美,实际操作过程中发现,如果把BuddyPress等插件通过该插件进行全局的不载入,然后到实际BuddyPress的页面再单独载入,不过问题来了,进行了全局的排除,那么势必对所有要用到的页面都得挨个去定义载入,尽管这个插件可以进行网址子目录的包含之类的功能,但是假设新建了很多不同的Group和Forum等的时候,就变得很不可控了,毕竟BuddyPress类的站点,好多都是在用她来搭建一个全局的社会化站点,现在因为有插件的冲突,我们人为的去阻止了这个全局化,肯定不是一个理想方案。

我们都知道WordPress站点BuddyPress化以后,新增了很多全站的功能,比如站内短信互动,动态跟踪等特性,如果对BuddyPress进行全局的不载入,那么这些功能都只能放弃了,因此对于大多数用BuddyPress来做社会化站点的情况来说,这个方案直接pass了,那么我们再换个思路来设法解决这个问题,也就是既然提示的是jQuery easing的冲突,那么我们是否可以把jQuery easing从BuddyPress的global.js里边剥离出来,单独将这个js载入到具体涉及要用到jQuery easing的页面,而据我检测发现,要用到这个模块的也就是很少的几个地方,比如activity的发布表单,如果没了jQuery easing,这个表单就失效了,还有几个地方也都类似,那么就好办了,我们直接把这个模块剥离出来,然后把这个存成一个单独的jquery-easing.js的文件,载入到专门用来载入到BuddyPress核心页面的头部header-buddypress.php里边,这样其他非buddypress页面就完美实现了两者的共存,经测试完全可行。

总结

这个教程主要以思路为主,不直接将里边的代码贴出来,事实上好多时候授人与鱼,不如授人予渔,直接贴代码出来仅仅可以解决一个实际的问题,而我们都知道,WordPress和BuddyPress的版本经常更新,插件也是,兼容性问题千变万化,如果不能举一反三,很难实际的解决问题。



       


  售前在线询价单
  全网营销套餐
  隽永东方学院