wp-includes/theme.php:600Retrieves path to themes directory.
$stylesheet_or_templatestringoptional''stringOne hook fires while get_theme_root() runs, in this order:
Filters the absolute path to the themes directory.
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 );}Introduced in 1.5.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
src/wp-includes/theme.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.