# get_theme_file_path() │ WP 4.7.0
Функция get_theme_file_path()
определяет путь к указанному файлу темы. Она работает с дочерними темами (child themes).
## Описание функции
Функция сначала ищет файл в дочерней теме. Если в дочерней теме файла нет, она находит путь к файлу в основной (родительской) теме.
Эту функцию нужно использовать всегда, когда вы создаете тему, чтобы правильно работать с файлами дочерних тем.
Когда вы используете get_theme_file_path()
, вам не нужно отдельно проверять поддержку дочерних тем с помощью функций get_template_directory_uri()
и get_template_directory()
.
Если вам нужен URL файла, а не его путь, используйте get_theme_file_uri()
.
**Время выполнения:**
1 раз — 0.000051 сек (очень быстро)
50000 раз — 0.55 сек (очень быстро)
PHP 7.1.2, WP 4.7.3
## Возвращаемое значение
Функция возвращает строку — путь к файлу.
## Использование
```php
$filepath = get_theme_file_path( $file );
Параметры
- $file (строка): Имя файла, который нужно найти в директории темы. Например,
file.php
. Можно указывать относительный путь к файлу, например:inc/file.php
или/inc/file.php
.
Если вы оставите этот параметр пустым, функция вернет путь к активной теме. Смотрите get_stylesheet_directory()
.
По умолчанию: ''
Примеры использования
Пример 1: Получаем путь к файлу
echo get_theme_file_path( 'myfile.php' );
Результат будет следующим:
/home/site/www/wp-content/themes/wpkama-child/myfile.php
или
/home/site/www/wp-content/themes/wpkama/myfile.php
Пример 2: Подключаем файл темы с учетом дочерней темы
require_once( get_theme_file_path( 'myfile.php' ) );
Это означает, что функция проверит, есть ли файл myfile.php
в дочерней теме. Если его нет, файл будет подключён из родительской темы.
Пример 3: Включаем файл из директории темы inc
include get_theme_file_path( '/inc/template.php' );
Изменения
Модель функции была введена в версии 4.7.0.
Код функции
function get_theme_file_path( $file = '' ) {
$file = ltrim( $file, '/' );
$stylesheet_directory = get_stylesheet_directory();
$template_directory = get_template_directory();
if ( empty( $file ) ) {
$path = $stylesheet_directory;
} elseif ( $stylesheet_directory !== $template_directory && file_exists( $stylesheet_directory . '/' . $file ) ) {
$path = $stylesheet_directory . '/' . $file;
} else {
$path = $template_directory . '/' . $file;
}
/**
* Фильтрует путь к файлу в теме.
*
* @since 4.7.0
*
* @param string $path Путь к файлу.
* @param string $file Запрашиваемый файл для поиска.
*/
return apply_filters( 'theme_file_path', $path, $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_uri()
get_theme_root()
get_theme_root_uri()
register_theme_directory()
В этой статье рассматривается использование функции get_theme_file_path()
в WordPress, которая полезна для работы с темами и их файлами.