WordPress Version: 6.4
/**
* Retrieves stylesheet directory path for the active theme.
*
* @since 1.5.0
* @since 6.4.0 Memoizes filter execution so that it only runs once for the current theme.
*
* @global string $wp_stylesheet_path Current theme stylesheet directory path.
*
* @return string Path to active theme's stylesheet directory.
*/
function get_stylesheet_directory()
{
global $wp_stylesheet_path;
if (null === $wp_stylesheet_path) {
$stylesheet = get_stylesheet();
$theme_root = get_theme_root($stylesheet);
$stylesheet_dir = "{$theme_root}/{$stylesheet}";
/**
* Filters the stylesheet directory path for the active theme.
*
* @since 1.5.0
*
* @param string $stylesheet_dir Absolute path to the active theme.
* @param string $stylesheet Directory name of the active theme.
* @param string $theme_root Absolute path to themes directory.
*/
$stylesheet_dir = apply_filters('stylesheet_directory', $stylesheet_dir, $stylesheet, $theme_root);
// If there are filter callbacks, force the logic to execute on every call.
if (has_filter('stylesheet') || has_filter('theme_root') || has_filter('stylesheet_directory')) {
return $stylesheet_dir;
}
$wp_stylesheet_path = $stylesheet_dir;
}
return $wp_stylesheet_path;
}