get_template_directory(): string

Retrieves template directory path for the active theme.


string Path to active theme's template directory.

Top ↑

More Information

Top ↑


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.

Top ↑


  • 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

Top ↑


File: wp-includes/theme.php. View all references

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;

Top ↑


Top ↑


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

Top ↑

User Contributed Notes

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