Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I'm using mac os x 10.6 with xampp.

http://wp3.1/ is the url to where I have WordPress installed.

The physical path is /Users/myUserName/Sites/wp3.1/

I do not install plugins or themes in the "natural" way. I have created a directory named "git" which is located in /Users/myUserName/git/. This is where all my git repositories live. When I want to install a plugin, I just create a symbolic link in /Users/myUserName/Sites/wp3.1/wp-content/plugins/. This works great for simple plugins, but if the plugin enqueue's a style sheet or script, the url displays as:

http://wp3.1/wp-content/plugins/Users/myUserName/git/options-framework-plugin/css/colorpicker.css?ver=3.1.1

How do I fix this?

share|improve this question
add comment

2 Answers 2

up vote 9 down vote accepted

Symbolic links are … risky in WordPress. It is easier to use a separate domain for plugins per wp-config.php:

define( 'WP_PLUGIN_DIR', '/local/path/to/plugin/directory' );
define( 'WP_PLUGIN_URL', 'http://plugins.dev');

See Strategy On Building Plugin Using Eclipse as an example for IDE configuration with such a setup.

share|improve this answer
    
Interesting ... Thanks! Going to give this a try right away. –  mfields Apr 24 '11 at 0:53
    
This worked liked a charm. Thanks so much! It took me a while to get my vhosts set up, but now everythings working perfectly. Mad Props!!! –  mfields Apr 24 '11 at 1:35
    
@toscho: Won't using a separate domain for your plugins create issues with cross-domain security in browsers? WP Cookies that are not transferred when you access something in `plugins.dev/myplugin/myaction.php';? –  Jan Fabry Apr 27 '11 at 11:26
1  
@Jan Fabry I'm using this method for development only. IMO, plugins coded to access their files are doing it wrong. Actions such as this should be handled by admin-ajax.php. –  mfields Apr 29 '11 at 14:21
1  
+1 This is possible for Plugins as well as MU-Plugins, but sadly not for Dropins, which have to stay in your ~/wp-content dir... –  kaiser Jun 26 '12 at 13:46
show 2 more comments

As you can see, the plugin URL is correct except for the real path stuck in the middle. We can filter the function responsible for generating plugin URLs and remove this.

The following code should be installed as a Must Use Plugin:

add_filter( 'plugins_url', function( $url ) {
    return str_replace( '/Users/myUserName/git/', '', $url );
});
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.