get_template_directory_uri()
Получает URL родительской темы (даже если используется дочерняя). Без слэша на конце.
get_bloginfo('template_url'); — это алиас этой функции - при запросе этой опции будет вызвана эта фукнция.
-
Используйте get_stylesheet_directory_uri(), когда используется дочерняя тема и нужно получить её URL.
-
Используйте get_template_directory(), когда нужно получить путь до папки темы.
- Используйте plugin_dir_url(), когда нужно получить URL для плагина.
Работает на основе: get_theme_root_uri(), get_template()
Основа для: get_parent_theme_file_uri(), get_theme_file_uri()
1 раз — 0.002132 сек (очень медленно) | 50000 раз — 3.37 сек (быстро) | PHP 7.1.2, WP 4.7.3
Хуки из функции
Возвращает
Строку. URL темы (шаблона).
Использование
get_template_directory_uri();
Примеры
#1 Использование функции в HTML теге
Для безопасности результат функции нужно очищать через esc_url() или esc_attr().
Впрочем такую очистку нужно делать абсолютно для всех функций которые используются в атрибутах тегов. Например, если такой очистки не будет, то ваш код не пройдет проверку при размещении темы/плагина в офф репозитории. Пример очистки:
<img src="<?php echo esc_url( get_template_directory_uri() ); ?>/screenshot.png">
#2 Получим путь до шаблона:
echo get_template_directory_uri(); // получим: http://example.com/wp-content/themes/theme_name
#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() get template directory uri WP 6.8.3
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 );
}