get_theme_file_uri() WP 4.7.0

Отримує URL-адресу вказаного файлу теми. Враховує дочірні теми.

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

Функція створена для того, щоб повсюдно використовуватися при створенні тим, щоб усі URL в темі підтримували дочірні теми.

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

Використовуйте get_parent_theme_file_uri() , коли НЕ потрібно враховувати дочірню тему.

Використовуйте get_theme_file_path() , коли потрібно аналогічним способом одержати шлях файлу (не URL).

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 ()

За замовчуванням:

Приклади

0

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *