WordPress как на ладони
WordPress темы и плагины за 250 рублей wordpress jino

get_theme_file_uri() WP 4.7.0

Получает URL указанного файла темы. Учитывает дочерние темы.

Функция пытается найти указанный файл сначала в дочерней теме, если его там нет, то берет его из основной. Таким образом дочерняя тема может переписывать файл основной темы.

Функция создана, для того, чтобы повсеместно использоваться при создании тем, чтобы все URL в теме поддерживали дочерние темы...

Функция отличается от своих аналогов: get_stylesheet_directory_uri() и get_template_directory_uri(), тем что она совмещает их обе. Т.е. она ищет файл, сначала в дочерней теме, если его там нет, то ищет его в родительской. А с помощью этих двух функций можно жестко указать URL либо дочерней либо родительской темы.

Эта функция получает URL файла, если нужно получить путь аналогичным способом, используйте get_theme_file_path()

Также читайте мой ответ на вопрос по этой функции.

✈ 1 раз = 0.003745с = очень медленно | 50000 раз = 6.93с = быстро PHP 7.1.5, WP 4.9.4
Хуки из функции:
Возвращает

Строку. URL файла.

Использование

get_theme_file_uri( $file );
$file(строка)

Название файла который нужно найти в теме. Например file.js. Можно указать вложенный файл js/file.php или так /js/file.js.

Если оставить строку пустой, то вернет URL активной темы, учитывая дочернюю тему. См. get_stylesheet_directory_uri()

По умолчанию: ''

Примеры

#1 Получим URL файла темы с учетом дочерней темы

Допустим нам нужно подключить в теме файл js/my-script.js, но при этом нужно сделать так, чтобы при создании дочерней темы и такого же файла в ней, подключался файл дочерней темы.

Теперь в WP 4.7 это можно записать очень просто с помощью функции 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') )
);

Код get theme file uri: wp-includes/link-template.php VER 4.9.6

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

Cвязанные функции

Из метки: theme path (url папка тем)

Еще из раздела: Подключение файлов темы

Еще из тегов шаблона: Ссылки (УРЛы)

1 коммент
  • campusboy2787 cайт: www.youtube.com/c/wpplus

    Удобная штука, код короче получается. Пусть не намного, но всё же. Плюс убирает двойные слеши, если такое передал. Жаль нет the_theme_file_uri(), чтобы сразу выводить на экран можно было.

    1

Здравствуйте, !