Функция get_theme_file_path()
предназначена для получения полного пути к указанному файлу в текущей теме WordPress, при этом учитываются и дочерние темы. Это позволяет легко работать с файлами темы, обеспечивая, чтобы пути корректно отражали иерархию дочерних и основных тем.
get_theme_file_path( string $file = '' ) : string
Параметры
$file
(строка) — Необязательный параметр. Путь к файлу относительно корня темы. Если не указан, функция вернет путь к корню темы.
Возвращаемое значение
Функция возвращает строку, содержащую полный путь к указанному файлу с учетом дочерней темы. Если файл не найден в дочерней теме, будет возвращен путь к файлу из основной темы.
Как это работает
Функция get_theme_file_path()
сначала ищет указанный файл в дочерней теме. Если файл не найден, функция возвращает путь к файлу в основной теме. Это упрощает работу с файлами в многоуровневых темах и избавляет от необходимости вручную проверять пути с помощью функций get_template_directory_uri()
и get_template_directory()
.
Если нужно игнорировать дочернюю тему, используйте функцию get_parent_theme_file_path()
. Для получения URL файла, а не его пути, воспользуйтесь get_theme_file_uri()
.
Пример 1: Получение пути к файлу
echo get_theme_file_path( 'file.php' );
Этот код выведет путь к файлу file.php
, находящемуся в дочерней или основной теме, например:
/home/site/www/wp-content/themes/theme-child/file.php
или
/home/site/www/wp-content/themes/parent-theme/file.php
Пример 2: Подключение файла из каталога темы
include get_theme_file_path( '/vendor/template.php' );
В этом примере путь к файлу template.php
, находящемуся в папке vendor
, будет определен с учетом иерархии тем. Файл будет подключен из дочерней темы, если он там есть, или из основной темы, если его нет.
Пример 3: Подключение файла с учетом дочерней темы
require_once( get_theme_file_path( 'file.php' ) );
В этом примере функция проверит наличие файла file.php
в дочерней теме. Если файл отсутствует, он будет подключен из основной темы.
Пример 4: Подключение шаблона
Предположим, что у вас есть пользовательский шаблон custom-template.php
, который должен быть подключен в футере вашего сайта. Чтобы обеспечить корректное подключение файла, если он существует, используйте функцию get_theme_file_path()
.
function include_custom_template() {
// Определяем путь к файлу custom-template.php в папке templates
$template_path = get_theme_file_path('templates/custom-template.php');
// Проверяем, существует ли файл перед его подключением
if (file_exists($template_path)) {
// Подключаем файл шаблона
include $template_path;
} else {
// Логирование или вывод сообщения, если файл не найден
error_log('Custom template not found: ' . $template_path);
}
}
// Добавляем функцию к действию 'wp_footer', чтобы подключить шаблон в футере
add_action('wp_footer', 'include_custom_template');
В этом примере get_theme_file_path()
используется для получения пути к пользовательскому шаблону, который затем включается только если файл существует.
Заключение
Функция get_theme_file_path()
— это полезный инструмент для упрощения работы с путями файлов в WordPress темах. Она автоматизирует процесс проверки наличия файлов в дочерних и основных темах, что делает код более чистым и менее подверженным ошибкам.