get_theme_file_uri( string $file = '' ): string

Retrieves the URL of a file in the theme.


Description

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


Top ↑

Parameters

$file string Optional
File to search for in the stylesheet directory.

Default: ''


Top ↑

Return

string The URL of the file.


Top ↑

Source

File: wp-includes/link-template.php. View all references

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 );
}

Top ↑

Hooks



Top ↑

Changelog

Changelog
Version Description
4.7.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 2 content
    Contributed by Márcio Duarte

    You can use this function to include local theme assets (like images) in your block patterns:

    <!-- wp:image {"id":12,"width":640,"height":400,"sizeSlug":"full","linkDestination":"none"} -->
    <figure class="wp-block-image size-full"><img src="<?php
    echo esc_url( get_theme_file_uri( 'assets/img/my-asset.png' ) ); ?>" alt="<?php _e( 'Asset description' ) ?>" width="640" height="400"/></figure>
    <!-- /wp:image -->

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