get_theme_file_uri()WP 4.7.0

Retrieves the URL of a file in the theme.

Searches in the stylesheet directory before the template directory so themes which inherit from a parent theme can just override one file.

1 time — 0.003745 sec (very slow) | 50000 times — 6.93 sec (fast) | PHP 7.1.5, WP 4.9.4
Hooks from the function

Return

String. The URL of the file.

Usage

get_theme_file_uri( $file );
$file(string)
File to search for in the stylesheet directory.
Default: ''

Examples

0

#1 Get the URL of the theme file including the child theme [auto-translate]

Suppose we want to include the file js/my-script.js in the theme, but we need to make sure that when we create a child theme and the same file in it, the child theme file is included.

Now in WP 4.7 this can be written very simply with the function get_theme_file_uri():

wp_enqueue_script(
	'my-script',
	get_theme_file_uri( 'js/my-script.js' ),
	array(),
	filemtime( get_theme_file_path('js/my-script.js') )
);

Changelog

Since 4.7.0 Introduced.

get_theme_file_uri() code WP 6.3

function get_theme_file_uri( $file = '' ) {
	$file = ltrim( $file, '/' );

	if ( empty( $file ) ) {
		$url = get_stylesheet_directory_uri();
	} elseif ( file_exists( get_stylesheet_directory() . '/' . $file ) ) {
		$url = get_stylesheet_directory_uri() . '/' . $file;
	} else {
		$url = get_template_directory_uri() . '/' . $file;
	}

	/**
	 * Filters the URL to a file in the theme.
	 *
	 * @since 4.7.0
	 *
	 * @param string $url  The file URL.
	 * @param string $file The requested file to search for.
	 */
	return apply_filters( 'theme_file_uri', $url, $file );
}