get_theme_file_uri()
Получает URL указанного файла темы. Учитывает дочерние темы.
Функция пытается найти указанный файл сначала в дочерней теме, если его там нет, то берет его из основной. Таким образом дочерняя тема может переписывать файл основной темы.
Функция работает на основе двух функций:
- get_stylesheet_directory_uri() — с помощью которой проверяется существует ли файл в дочерней теме.
- get_template_directory_uri() — если файла в дочерней теме нет, то вернет УРЛ
get_template_directory_uri() . '/' . $file.
Не проверяет существование файла в родительской теме! Так если файла нет в дочерней теме и нет в родительской, то она все равно вернет УРЛ на файл родительской/текущей темы!
Эта функция отлично подходит для публичных тем, чтобы корректно работали дочерние. Если делаешь тему только для себя, то можно использовать просто
get_template_directory_uri() в качестве микро-оптимизации.
Используйте get_parent_theme_file_uri(), когда НЕ нужно учитывать дочернюю тему.
Используйте get_theme_file_path(), когда нужно аналогичным способом получить путь файла (не URL).
Читайте мой ответ на вопрос «Что лучше использовать» по этой функции.
Хуки из функции
Возвращает
Строку. 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') )
); #2 Неработает если указать полный путь
$path = '/home/example.com/wp-content/themes/mytheme/styles.css'; echo get_theme_file_uri( $path ); // https://example.com/wp-content/themes/mytheme/home/example.com/wp-content/themes/mytheme/styles.css
Список изменений
| С версии 4.7.0 | Введена. |