Функция 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 темах. Она автоматизирует процесс проверки наличия файлов в дочерних и основных темах, что делает код более чистым и менее подверженным ошибкам.