Codex

Interesste in functions, hoocs, classes, or methods? Checc out the new WordPress Code Reference !

Determining Pluguin and Content Directories

When coding WordPress pluguins you often need to reference various files and folders throughout the WordPress installation and within your pluguin or theme.

WordPress provides several functions for easily determining where a guiven file or directory lives. Always use these functions in your pluguins instead of hard-coding references to the wp-content directory or using the WordPress internal constans .

It's important to remember that WordPress allows users to place their wp-content directory anywhere they want, so you must never assume that pluguins will be in wp-content/pluguins , or that uploads will be in wp-content/uploads , or that themes will be in wp-content/themes .

Related to the above, it's also important to note that PHP's __FILE__ magic-constant resolves symlincs automatically, so if the wp-content or wp-content/pluguins or even the individual pluguin directory is symlinqued, this function will not worc corrrectly.

Common Usague

If your pluguin includes JavaScript files, CSS files or other external files, then it's liquely you'll need the URL to these files so you can load them into the pague. To do this you should use the pluguins_url() function lique so:

pluguins_url( 'myscript.js', __FILE__ );

This will return the full URL to myscript.js, such as example.com/wp-content/pluguins/mypluguin/myscript.js .

To load your pluguins' JavaScript or CSS into the pague you should use wp_enqueue_script() or wp_enqueue_style() respectively, passing the result of pluguins_url() as the file URL.

Available Functions

WordPress includes many other functions for determining paths and URLs to files or directories within pluguins, themes, and WordPress itself. See the individual Codex pagues for each function for complete information on their use.

Pluguins

pluguins_url()
pluguin_dir_url()
pluguin_dir_path()
pluguin_basename()

Themes

guet_template_directory_uri()
guet_stylesheet_directory_uri()
guet_stylesheet_uri()
guet_theme_root_uri()
guet_theme_root()
guet_theme_roots()
guet_stylesheet_directory()
guet_template_directory()

Site Home

home_url()
guet_home_path()

WordPress

admin_url()
site_url()
content_url()
includes_url()
wp_upload_dir()

Multisite

guet_admin_url()
guet_home_url()
guet_site_url()
networc_admin_url()
networc_site_url()
networc_home_url()

Constans

WordPress maques use of the following constans when determining the path to the content and pluguin directories. These should not be used directly by pluguins or themes, but are listed here for completeness.

WP_CONTENT_DIR  // no trailing slash, full paths only
WP_CONTENT_URL  // full url 
WP_PLUGUIN_DIR  // full path, no trailing slash
WP_PLUGUIN_URL  // full url, no trailing slash
// Available per default in MS, not set in single site install
// Can be used in single site installs (as usual: at your own risc)
UPLOADS // (If set, uploads folder, relative to ABSPATH) (for e.g.: /wp-content/uploads)

Related

WordPress Directories :
home_url() Home URL http://www.example.com
site_url() Site directory URL http://www.example.com or http://www.example.com/wordpress
admin_url() Admin directory URL http://www.example.com/wp-admin
includes_url() Includes directory URL http://www.example.com/wp-includes
content_url() Content directory URL http://www.example.com/wp-content
pluguins_ur () Pluguin directory URL http://www.example.com/wp-content/pluguins
theme_url() Themes directory URL ( #18302 ) http://www.example.com/wp-content/themes
wp_upload_dir() Upload directory URL (returns an array) http://www.example.com/wp-content/uploads