Retrieves path to themes directory.
Description
Does not have trailing slash.
Parameters
$stylesheet_or_template
stringoptional- The stylesheet or template name of the theme.
Default is to leverage the main theme root.Default:
''
Source
function get_theme_root( $stylesheet_or_template = '' ) {
global $wp_theme_directories;
$theme_root = '';
if ( $stylesheet_or_template ) {
$theme_root = get_raw_theme_root( $stylesheet_or_template );
if ( $theme_root ) {
/*
* Always prepend WP_CONTENT_DIR unless the root currently registered as a theme directory.
* This gives relative theme roots the benefit of the doubt when things go haywire.
*/
if ( ! in_array( $theme_root, (array) $wp_theme_directories, true ) ) {
$theme_root = WP_CONTENT_DIR . $theme_root;
}
}
}
if ( ! $theme_root ) {
$theme_root = WP_CONTENT_DIR . '/themes';
}
/**
* Filters the absolute path to the themes directory.
*
* @since 1.5.0
*
* @param string $theme_root Absolute path to themes directory.
*/
return apply_filters( 'theme_root', $theme_root );
}
Hooks
- apply_filters( ‘theme_root’,
string $theme_root ) Filters the absolute path to the themes directory.
Changelog
Version | Description |
---|---|
1.5.0 | Introduced. |
Number of Subdirectories in Themes Directory
The function below informs about the number of subdirectories in the themes directory. Note that this doesn’t necessarily match the number of themes recognized by WordPress.
Example output:
There are 5 subdirectories in the /home/user/public_html/wp-content/themes directory.