How to use a newer version of a script in a WordPress pluginFiled Under: Snippets, plugins
In the plugin I am working on at the moment I wanted to use Prototype 1.6, but WordPress, currently at least, includes version 1.5. So I set about find out how best to do this.
I could have just included it again, but that didn’t seem like the best idea to me. To have one script overriding an other is unlikely to be efficient.
This is what I came up with. First a check to find out if the version currently included is lower than 1.6. Obviously if a newer version is included I don’t want to remove that as it may cause problems.
If it is then it is de-registered and the version included with the plugin is registered.
There may be an official way of achieving this, but I couldn’t find one.
if ( $wp_scripts->scripts['prototype']->ver < 1.6 ) { //replace prototype with version 1.6 wp_deregister_script( 'prototype' ); wp_enqueue_script('prototype', '/wp-content/plugins/plugin-path/prototype.js', NULL , 1.6); }
- Permalink
- Andrew Rickmann
- 14 Dec 2007 1:42 PM
- Comments (3)
December 14th, 2007 at 3:46 pm
What happens if you disable the plugin or even worse, disable all your plugins for a WP update by renaming the plugins folder?
With some types of scripts, this could seriously bring users in trouble if there is no “register previous version” functionality in the deactivation routine. And renaming the folder - as some people are used to - will certainly break stuff I guess
December 14th, 2007 at 4:32 pm
Christoph,
That wouldn’t be a problem as this isn’t a permanent change. It overides the default during the init or admin_menu actions so if the plugin was deactivated, or just didn’t run for some reason, then the default version would be loaded.
December 16th, 2007 at 4:55 am
i had one day installed higher version plugin and all my plugins manager had disappeared but when i had removed that plugin from wp-content. I was able to see my plugin window the next day.
So i would say this will be a good code to use.