Функция get_theme_file_uri()
в WordPress предназначена для получения URL указанного файла темы, учитывая наличие дочерних тем. Она позволяет гибко работать с файлами, обеспечивая поддержку дочерних тем и упрощая их переопределение.
get_theme_file_uri( $file = '' )
Параметры
- $file (string) (необязательный): Путь к файлу относительно директории темы. По умолчанию — пустая строка.
Возвращаемое значение
- (string): URL к запрашиваемому файлу.
Основные особенности
Функция get_theme_file_uri()
сначала пытается найти указанный файл в дочерней теме. Если файл не найден, она ищет его в родительской теме. Это позволяет дочерним темам переопределять файлы родительской темы, обеспечивая гибкость и настраиваемость.
Функция была разработана для повсеместного использования при создании тем, чтобы все URL в теме поддерживали дочерние темы, что упрощает разработку и сопровождение тем.
Отличия от других функций
get_theme_file_uri()
отличается от похожих функций get_stylesheet_directory_uri()
и get_template_directory_uri()
. В то время как get_stylesheet_directory_uri()
возвращает URL к директории активной (дочерней) темы, а get_template_directory_uri()
— к директории родительской темы, get_theme_file_uri()
ищет указанный файл сначала в дочерней теме, а затем в родительской.
Для случаев, когда не требуется учитывать дочернюю тему, используйте get_parent_theme_file_uri()
.
Чтобы получить путь к файлу (не URL), используйте функцию get_theme_file_path()
.
Хуки
- theme_file_uri: позволяет модифицировать возвращаемый URL файла.
Пример 1: Подключение CSS файла
Для подключения CSS файла, находящегося в директории вашей темы, используйте get_theme_file_uri()
в функции wp_enqueue_style()
.
function genius_theme_enqueue_styles() {
wp_enqueue_style( 'my-theme-style', get_theme_file_uri( '/css/style.css' ) );
}
add_action( 'wp_enqueue_scripts', 'genius_theme_enqueue_styles' );
Пример 2: Подключение JavaScript файла
Для подключения JavaScript файла используйте get_theme_file_uri()
в функции wp_enqueue_script()
.
function genius_theme_enqueue_scripts() {
wp_enqueue_script( 'my-theme-script', get_theme_file_uri( '/js/script.js' ), array(), null, true );
}
add_action( 'wp_enqueue_scripts', 'genius_theme_enqueue_scripts' );
Пример 3: Вывод изображения в теме
Чтобы вывести изображение, находящееся в директории темы, используйте get_theme_file_uri()
.
function genius_theme_display_image() {
$image_url = get_theme_file_uri( '/images/my-image.jpg' );
echo '<img src="' . esc_url( $image_url ) . '" alt="My Image">';
}
add_action( 'wp_footer', 'genius_theme_display_image' );
Пример 4: Подключение файла с учетом дочерней темы
Допустим, вам нужно подключить файл js/my-script.js
, но при этом учитывать наличие одноименного файла в дочерней теме.
function genius_theme_enqueue_child_scripts() {
wp_enqueue_script(
'my-script',
get_theme_file_uri( 'js/my-script.js' ),
array(),
filemtime( get_theme_file_path( 'js/my-script.js' ) )
);
}
add_action( 'wp_enqueue_scripts', 'genius_theme_enqueue_child_scripts' );
Заключение
Функция get_theme_file_uri()
в WordPress — это мощный инструмент для получения URL к файлам вашей темы, учитывающий дочерние темы. Она упрощает процесс разработки тем, делая код более читабельным и поддерживаемым. Надеемся, что приведенные примеры помогут вам эффективно использовать get_theme_file_uri()
в ваших проектах.