get_template_directory_uri ()

Retrieve theme directory URI.

Return: (string) Template directory URI.

Source file: wp-includes/theme.php

View source


More Information

Notes

  • Checks for SSL
  • Does not return a trailing slash following the directory address


Source

function get_template_directory_uri() {
	$template = str_replace( '%2F', '/', rawurlencode( get_template() ) );
	$theme_root_uri = get_theme_root_uri( $template );
	$template_dir_uri = "$theme_root_uri/$template";

	/**
	 * Filter the current theme directory URI.
	 *
	 * @since 1.5.0
	 *
	 * @param string $template_dir_uri The URI of the current theme directory.
	 * @param string $template         Directory name of the current theme.
	 * @param string $theme_root_uri   The themes root URI.
	 */
	return apply_filters( 'template_directory_uri', $template_dir_uri, $template, $theme_root_uri );
}


Changelog


User Contributed Notes

  1. Using get_template_directory_uri() to enqueue a script with the correct path.

    add_action('wp_enqueue_scripts', 'wpdocs_scripts_method');
    
    /*
     * Enqueue a script with the correct path.
     */
    function wpdocs_scripts_method() {
    	wp_enqueue_script(
    		'custom_script',
    		get_template_directory_uri() . '/js/custom_script.js',
    		array('jquery')
    	);
    }
    
  2. /**
     * Enqueue scripts and styles.
     */
    function wpdocs_theme_slug_scripts() {
    	// Custom scripts require a unique slug (Theme Name).
    	wp_enqueue_script( 'theme-slug-custom-script', get_template_directory_uri() . '/js/custom-script.js', array(), '1.0.0', true );
    
    	/*
    	 * To avoid double loading Genericons will not need a slug. Same applies
    	 * to all other non-custom styles or scripts.
    	 */
    	wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '1.0.0' );
    }
    add_action( 'wp_enqueue_scripts', 'wpdocs_theme_slug_scripts' );
    

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