Функция get_theme_file_uri() для WordPress: синтаксис и использование

Функция GET_THEME_FILE_URI() │ WP 4.7.0

Функция get_theme_file_uri() возвращает URL (ссылку) на файл в вашей теме WordPress. Эта функция позволяет находить файлы как в основной, так и в дочерней теме.

Как это работает?

Когда вы используете эту функцию, она сначала ищет файл в директории стиля (стили вашей темы), а если не находит — переходит к черновику (основной теме). Это значит, что если ваша тема наследует от родительской, вы можете просто переопределить нужный файл.

Используемые функции

  • get_stylesheet_directory(): Получает путь к директории вашей текущей темы.
  • get_stylesheet_directory_uri(): Получает URL директории стилей (ссылку).
  • get_template_directory_uri(): Получает URL директории черновика (основной темы).

Производительность

  • Время выполнения 1 раз — 0.003745 сек (очень медленно)
  • 50000 раз — 6.93 сек (быстро)
  • PHP 7.1.5, WP 4.9.4

Хуки функции

Функция использует хук theme_file_uri, который позволяет изменять URL файла перед тем, как он будет возвращен.

Возвращаемое значение

Функция возвращает строку, которая является URL файла.

Применение

Синтаксис

get_theme_file_uri( $file );
  • $file (string): Имя файла, который нужно найти в директории стилей. По умолчанию: '' (пустая строка).

Примеры использования

Пример 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') )
);

Объяснение кода

  • wp_enqueue_script: Функция, которая подключает JavaScript файл на сайт.
  • get_theme_file_uri( 'js/my-script.js' ): Здесь мы получаем URL нашего скрипта.
  • filemtime(): Эта функция возвращает время последнего изменения файла, что помогает оптимизировать кэширование.

Изменения в версии

  • Функция введена в версии 4.7.0.

Код функции

Вот как выглядит код функции get_theme_file_uri() в файле wp-includes/link-template.php:

function get_theme_file_uri( $file = '' ) {
$file = ltrim( $file, '/' );

$stylesheet_directory = get_stylesheet_directory();

if ( empty( $file ) ) {
    $url = get_stylesheet_directory_uri();
} elseif ( get_template_directory() !== $stylesheet_directory && file_exists( $stylesheet_directory . '/' . $file ) ) {
    $url = get_stylesheet_directory_uri() . '/' . $file;
} else {
    $url = get_template_directory_uri() . '/' . $file;
}

/**
 * Фильтрует URL к файлу в теме.
 *
 * @since 4.7.0
 *
 * @param string $url  URL файла.
 * @param string $file Запрашиваемый файл для поиска.
 */
return apply_filters( 'theme_file_uri', $url, $file );

}

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

Некоторые функции, которые могут быть полезны:

  • get_parent_theme_file_path()
  • get_parent_theme_file_uri()
  • get_stylesheet_directory()
  • get_stylesheet_directory_uri()
  • get_template_directory()
  • get_template_directory_uri()
  • get_theme_file_path()
  • get_theme_root()
  • get_theme_root_uri()
  • register_theme_directory()

Эти функции помогут вам управлять файлами тем и получать необходимые директории и URL.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *