Hi Ramzii, thanks for reporting… and for the sarcasm (or am I reading that wrong?) ??
I have not tested this but looking at Dynamic To Top source code, I think I see why the two plugins bite each other…
Dynamic To Top does this:
wp_register_script( 'jquery-easing', MV_DYNAMIC_TO_TOP_URL . '/js/libs/jquery.easing.js', array( 'jquery' ), '1.3', true );
and after registering the easing script under the name jquery-easing it gets included by way of a dependency for the main script:
wp_enqueue_script( 'dynamic-to-top', MV_DYNAMIC_TO_TOP_URL . '/js/dynamic.to.top.' . $env . '.js', array( 'jquery-easing' ), MV_DYNAMIC_TO_TOP_VERSION, true );
Easy FancyBox does this (at a later stage):
// first get rid of previously registered variants of jquery.easing by other plugins or theme
wp_deregister_script('jquery.easing');
wp_deregister_script('jqueryeasing');
wp_deregister_script('jquery-easing');
wp_deregister_script('easing');
// then register our version
wp_enqueue_script('jquery.easing', plugins_url(FANCYBOX_SUBDIR.'/fancybox/jquery.easing-'.EASING_VERSION.'.pack.js', __FILE__), array('jquery'), EASING_VERSION, true);
Which effectively removes the easing version that is registered under the name jquery-easing to replace it with its own version but under a different name: jquery.easing … The reason for this is to rule out as many plugin/theme conflicts as possible because of the easing script being loaded twice or more.
Now comes the problem: since the easing script is no longer available under the name jquery-easing (but instead under jquery.easing) the To Top script will not be loaded since WordPress thinks it cannot fulfil the dependency! If only there was a good naming convention for these script library extensions. Hyphen, underscore, dot or not or just single name… I’ve seen it all ??
The solution in this case could be for me to alter Easy FancyBox but that would mean many others will suddenly start having problems because of double loading of the easing script. So I would like to suggest to Matt Varone, the developer of Dynamic To Top, to approach the inclusion of the easing script differently: to simply use wp_enqueue_script
for easing.js instead of registering it then and making the main script dependant on it…
Matt, what do you think? Or do you have a better solution for this?