get_theme_file_uri()
Отримує URL-адресу вказаного файлу теми. Враховує дочірні теми.
Функція намагається знайти вказаний файл спочатку у дочірній темі, якщо його там немає, то бере його з основної. Таким чином, дочірня тема може переписувати файл основної теми.
Функція створена для того, щоб повсюдно використовуватися при створенні тим, щоб усі URL в темі підтримували дочірні теми.
Функція відрізняється від схожих на неї функцій: get_template_directory_uri() , тим що вона на основі цих функцій шукає зазначений файл: спочатку в дочірній темі, якщо його немає, то шукає його в батьківській. А за допомогою цих двох функцій можна просто отримати URL або дочірньої (якщо вона є або батьківської, якщо її немає), або безпосередньо батьківської теми.
Використовуйте get_parent_theme_file_uri() , коли НЕ потрібно враховувати дочірню тему.
Використовуйте get_theme_file_path() , коли потрібно аналогічним способом одержати шлях файлу (не URL).
Читайте мою відповідь на запитання «Що краще використовувати» за цією функцією.
get_stylesheet_directory() ,
get_stylesheet_directory_uri() ,
get_template_directory_uri()
(дуже повільно) | 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') )
);
список змін
| З версії 4.7.0 | Введено. |
Код get_theme_file_uri() get theme file uri WP 6.0.2
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 для файлу в theme.
*
* @ Since 4.7.0
*
* @param string $url file URL.
* @param string $file Потрібен файл для пошуку.
*/
return apply_filters( 'theme_file_uri', $url, $file);
}