Get plugin directory from a theme

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.

Read More

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?

Related posts

2 comments

  1. 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

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

    $url = plugins_url();
    $path = parse_url($url);
    var_dump($path['path']);
    

    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.

Comments are closed.