If you’re a experienced programmer you’re testing your programs not only with the latest version of WordPress but also with some older versions since there are many dated installations. So you have several versions installed on your development server and want to test your newly created code with every single version.
You could copy your plugin files to all installed version’s plugin directory manually every time you change the code… but you’re a programmer, so this is no option, is it?
If your dev server works under a *nix system you probably have tried to use symbolic links but it didn’t work. This is not a bug of WordPress but of PHP. So this does not work either.
Fortunately WordPress defines two constants which can help you to simplify things nonetheless:
WP_PLUGIN_URL. These constants point to the plugin directory of the respective WordPress installation. They are defined since WordPress 2.6 and supporting older versions is most likely unnecessary
To make your plugins accessible to all your installed WordPress versions you simply move them to a central directory and define the constants accordingly:
define( 'WP_PLUGIN_DIR', '/var/www/plugins' ); // or with XAMPP C:/xampp/htdocs/plugins define( 'WP_PLUGIN_URL', 'http://localhost/plugins' );
In this example the plugins reside in the directory ‘plugins’ in the root directory of the webserver. If you now define the above constants in every WordPress installation you have easy access to them to test your code with every version.
Hint for Multisite-Users
Also usable for WordPress Multisite
define( 'WPMU_PLUGIN_DIR', '/var/www/multisite-plugins' ); define( 'WPMU_PLUGIN_URL', 'http://localhost/multisite-plugins' );