WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

get_template_directory_uri() WP 1.5

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

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

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

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

Когда нужно получить URL для плагина, используйте plugin_dir_url()

Является основой для: get_parent_theme_file_uri(), get_theme_file_uri()
Работает на основе: 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. Получим путь до шаблона:

echo get_template_directory_uri();

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

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

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

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

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

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

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

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

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

Код get template directory uri: wp-includes/theme.php WP 5.4.2

<?php
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 current theme directory URI.
	 *
	 * @since 1.5.0
	 *
	 * @param string $template_dir_uri The URI of the current theme directory.
	 * @param string $template         Directory name of the current theme.
	 * @param string $theme_root_uri   The themes root URI.
	 */
	return apply_filters( 'template_directory_uri', $template_dir_uri, $template, $theme_root_uri );
}

Cвязанные функции

Из метки: theme path url (папка темы)

Еще из раздела: Подключение файлов темы

12 комментов
  • Serg

    строку, URL пусть до шаблона.

    Очепятка.
    "Путь к теме".

    Тимур, ещё в кодексе, в описании этой функции что-то про дочерние темы сказано. Переведи плз. и это.

    Ответить6.7 лет назад #
  • @ Дамир gabdrahimov.ru

    сайт супер, спасибо Тимур smile

    Ответить5.6 лет назад #
  • YAKOVLEV

    Здравствуйте!
    А если я хочу, чтобы

    echo get_template_directory_uri();
    // получим: http://test.ru/wp-content/themes/theme_name

    Чтобы ссылка была не http, а https
    Как это сделать?

    1
    Ответить5.5 лет назад #
  • @ Елена

    Я скачала шаблон для ворд пресс, там эта строка стоит второй в описании. И в ней ссылка на сторонний сайт. Что это значит? Оставлять ее или это надо удалить (заменить на свой ресурс)?
    Выглядит вот так:

    /*
    Theme Name: BeautyMagazine
    Theme URI: <a href="http://themesjunction.com" rel="nofollow">http://themesjunction.com</a>
    Description: WordPress шаблон в магазинном исполнении.
    Version: 1.0
    Author: Themes Junction Team
    Author URI:
    */

    Спасибо за ответ. Желательно немного подробный.... для "чайников"

    Ответить5.5 лет назад #
    • campusboy3554 www.youtube.com/c/wpplus

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

      2
      Ответить5.5 лет назад #
  • Иван

    Разобрался, применил другую функцию dance

    $mythemes = get_template();
    return site_url( "/wp-content/themes/$mythemes/image/{$img}", __FILE__ );}

    Все работает! Только вот сомневаюсь в правильности, может намудрил и можно сделать проще без

    $mythemes = get_template();

    ?

    Ответить5.2 лет назад #
    • campusboy3554 www.youtube.com/c/wpplus

      Может так?

      return  get_template_directory_uri().'/'.__FILE__;
      Ответить5.2 лет назад #
      • Иван

        Нет, так не работает. Когда добавляю image/{$img} то ссылка на файл не работает и дублирует два раза одно и тоже в пути, а на конце вместо файла который в папке ссылается на functions.php

        Ответить5.2 лет назад #
  • Александр

    Помогите - нужна помощь, в различных вариациях прописываю путь к картинке - картинку не выводит. Скрины приложил.

    в ворд прессе распечатан этот код

    Ответить6 мес назад #
    • campusboy3554 www.youtube.com/c/wpplus
      <div class="gal_item">
      	<img src="<?php echo get_stylesheet_directory_uri() ?>/img/g1.png">
      </div>
      1
      Ответить6 мес назад #