Функция GET_THEME_FILE_URI() │ WP 4.7.0
Функция get_theme_file_uri() возвращает URL (ссылку) на файл в вашей теме WordPress. Эта функция позволяет находить файлы как в основной, так и в дочерней теме.
Как это работает?
Когда вы используете эту функцию, она сначала ищет файл в директории стиля (стили вашей темы), а если не находит — переходит к черновику (основной теме). Это значит, что если ваша тема наследует от родительской, вы можете просто переопределить нужный файл.
Используемые функции
get_stylesheet_directory(): Получает путь к директории вашей текущей темы.get_stylesheet_directory_uri(): Получает URL директории стилей (ссылку).get_template_directory_uri(): Получает URL директории черновика (основной темы).
Производительность
- Время выполнения 1 раз — 0.003745 сек (очень медленно)
- 50000 раз — 6.93 сек (быстро)
- PHP 7.1.5, WP 4.9.4
Хуки функции
Функция использует хук theme_file_uri, который позволяет изменять URL файла перед тем, как он будет возвращен.
Возвращаемое значение
Функция возвращает строку, которая является URL файла.
Применение
Синтаксис
get_theme_file_uri( $file );
- $file (string): Имя файла, который нужно найти в директории стилей. По умолчанию: '' (пустая строка).
Примеры использования
Пример 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') )
);
Объяснение кода
wp_enqueue_script: Функция, которая подключает JavaScript файл на сайт.get_theme_file_uri( 'js/my-script.js' ): Здесь мы получаем URL нашего скрипта.filemtime(): Эта функция возвращает время последнего изменения файла, что помогает оптимизировать кэширование.
Изменения в версии
- Функция введена в версии 4.7.0.
Код функции
Вот как выглядит код функции get_theme_file_uri() в файле wp-includes/link-template.php:
function get_theme_file_uri( $file = '' ) {
$file = ltrim( $file, '/' );
$stylesheet_directory = get_stylesheet_directory();
if ( empty( $file ) ) {
$url = get_stylesheet_directory_uri();
} elseif ( get_template_directory() !== $stylesheet_directory && file_exists( $stylesheet_directory . '/' . $file ) ) {
$url = get_stylesheet_directory_uri() . '/' . $file;
} else {
$url = get_template_directory_uri() . '/' . $file;
}
/**
* Фильтрует URL к файлу в теме.
*
* @since 4.7.0
*
* @param string $url URL файла.
* @param string $file Запрашиваемый файл для поиска.
*/
return apply_filters( 'theme_file_uri', $url, $file );
}
Связанные функции
Некоторые функции, которые могут быть полезны:
get_parent_theme_file_path()get_parent_theme_file_uri()get_stylesheet_directory()get_stylesheet_directory_uri()get_template_directory()get_template_directory_uri()get_theme_file_path()get_theme_root()get_theme_root_uri()register_theme_directory()
Эти функции помогут вам управлять файлами тем и получать необходимые директории и URL.