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