get_template_directory(): string

Retrieves template directory path for the active theme.

Return

string Path to active theme’s template directory.

More Information

Usage

echo get_template_directory();

Returns an absolute server path (eg: /home/user/public_html/wp-content/themes/my_theme), not a URI.

In the case a child theme is being used, the absolute path to the parent theme directory will be returned. Use get_stylesheet_directory() to get the absolute path to the child theme directory.

To retrieve the URI of the stylesheet directory use get_stylesheet_directory_uri() instead.

Notes

  • Uses: get_theme_root() to retrieve the absolute path to the themes directory, get_template() to retrieve the directory name of the current theme.
  • Does not output a trailing slash

Source

function get_template_directory() {
	global $wp_template_path;

	if ( null === $wp_template_path ) {
		$template     = get_template();
		$theme_root   = get_theme_root( $template );
		$template_dir = "$theme_root/$template";

		/**
		 * Filters the active theme directory path.
		 *
		 * @since 1.5.0
		 *
		 * @param string $template_dir The path of the active theme directory.
		 * @param string $template     Directory name of the active theme.
		 * @param string $theme_root   Absolute path to the themes directory.
		 */
		$template_dir = apply_filters( 'template_directory', $template_dir, $template, $theme_root );

		// If there are filter callbacks, force the logic to execute on every call.
		if ( has_filter( 'template' ) || has_filter( 'theme_root' ) || has_filter( 'template_directory' ) ) {
			return $template_dir;
		}

		$wp_template_path = $template_dir;
	}

	return $wp_template_path;
}

Hooks

apply_filters( ‘template_directory’, string $template_dir, string $template, string $theme_root )

Filters the active theme directory path.

Changelog

VersionDescription
6.4.0Memoizes filter execution so that it only runs once for the current theme.
1.5.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.