WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Does anyone know a non-hacky way of getting the plugin directory path from within a theme's functions.php?

I've used plugin_dir_path(FILE), but because its called in the theme's functions.php it returns the path to that file. Not the plugins directory. I could string manipulate it and add the plugins path, but that feels nearly as bad as hardcoding the whole path.

I have got it working using:

require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' );

But I know that's so oldschool and wrong and I'd probably be shunned from the wordpress community for using it!

Is there a standard wordpress function I can use for this?

share|improve this question
up vote 6 down vote accepted

Maybe what you're looking for is :

WP_PLUGIN_DIR  // full path, no trailing slash
WP_PLUGIN_URL  // full url, no trailing slash

See documentation

share|improve this answer
legend thankyou – danbrown Oct 9 '13 at 9:39
Keep in mind that there're filters that might move the location somewhere else. This might be best bet, but it's surely not a save assumption. – kaiser Oct 9 '13 at 11:15

I believe this may be more reliable than depending upon the constants.

$url = plugins_url();
$path = parse_url($url);

The reason I suspect it may be more reliable is that the plugins_url function considers both the WPMU_PLUGIN_URL and the WP_PLUGIN_URL constants and will also respect the plugins_url filter.

share|improve this answer
This is the most non-hacky method and it should be the best answer. – CGeorges Mar 15 at 23:06

Your Answer


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.