WordPress как на ладони

get_template_directory_uri()WP 1.5.0

Получает URL родительской темы (даже если используется дочерняя). Без слэша на конце.

get_bloginfo('template_url'); — это алиас этой функции - при запросе этой опции будет вызвана эта фукнция.

  • Используйте get_stylesheet_directory_uri(), когда используется дочерняя тема и нужно получить её URL.

  • Используйте get_template_directory(), когда нужно получить путь до папки темы.

  • Используйте plugin_dir_url(), когда нужно получить URL для плагина.
Работает на основе: get_theme_root_uri(), get_template()
1 раз — 0.002132 сек (очень медленно) | 50000 раз — 3.37 сек (быстро) | PHP 7.1.2, WP 4.7.3
Хуки из функции

Возвращает

Строку. URL темы (шаблона).

Использование

get_template_directory_uri();

Примеры

1

#1 Использование функции в HTML теге

Для безопасности результат функции нужно очищать через esc_url() или esc_attr().

Впрочем такую очистку нужно делать абсолютно для всех функций которые используются в атрибутах тегов. Например, если такой очистки не будет, то ваш код не пройдет проверку при размещении темы/плагина в офф репозитории. Пример очистки:

<img src="<?php echo esc_url( get_template_directory_uri() ); ?>/screenshot.png">
0

#2 Получим путь до шаблона:

echo get_template_directory_uri();

// получим: http://example.com/wp-content/themes/theme_name
-1

#3 Используем функцию, чтобы подключить скрипт:

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
function my_scripts_method(){

	wp_enqueue_script(
		'custom_script',
		get_template_directory_uri() . '/js/custom_script.js',
		['jquery']
	);
}

Список изменений

С версии 1.5.0 Введена.

Код get_template_directory_uri() WP 6.5.2

function get_template_directory_uri() {
	$template         = str_replace( '%2F', '/', rawurlencode( get_template() ) );
	$theme_root_uri   = get_theme_root_uri( $template );
	$template_dir_uri = "$theme_root_uri/$template";

	/**
	 * Filters the active theme directory URI.
	 *
	 * @since 1.5.0
	 *
	 * @param string $template_dir_uri The URI of the active theme directory.
	 * @param string $template         Directory name of the active theme.
	 * @param string $theme_root_uri   The themes root URI.
	 */
	return apply_filters( 'template_directory_uri', $template_dir_uri, $template, $theme_root_uri );
}
14 комментариев
    Войти