Get the filesystem directory path (with trailing slash) for the plugin __FILE__ passed in.
Parameters
$file
stringrequired- The filename of the plugin (__FILE__).
Source
function plugin_dir_path( $file ) {
return trailingslashit( dirname( $file ) );
}
Changelog
Version | Description |
---|---|
2.8.0 | Introduced. |
If you want the get the path one level up from the current dir, you can do
Including all PHP files from a plugin sub folder and avoiding adding a unnecessary global just to determine a path that is already available everywhere just using WP core functions.
Get the directory of the current file:
my-plugin
directory.Define path constant
For calling numerous files, it is sometimes convenient to define a constant:
Conditional loading
It is sometimes efficient to conditionally load files, e.g., admin-only (or even by specific admin screen):
If you use this function, you can as well just use
trailingslashit( __DIR__ )
. There is literally no point at all in using the wrapper.This is NOT a pendant to what it “pretends” to be (
get_template_directory
), and it is a big negligence that such pendant simply does not exist for plugins.One has to either use
trailingslashit( WP_PLUGIN_DIR . '/your-plugin' )
to get the pendant ofget_template_directory
in a plugin, or create a custom function, if you do not want to use a constant.define( 'PREFIX_BASE_PATH', plugin_dir_path( __FILE__ ) );
define( 'PREFIX_ASSETS_URL', plugins_url( '/assets', __FILE__ ) );
use constant ‘PREFIX_BASE_PATH to include files in functions and files, e.g.,
include( PREFIX_BASE_PATH . 'inc/init.php' );
use constant: ‘PREFIX_ASSETS_URL’ to load assets via url (like; js, css, and images). e.g.,
wp_register_style( 'prefix_library', PREFIX_ASSETS_URL . '/dir/lib.css' );