Как получить имя шаблона, который включает текущий файл в WordPress?
21 февр. 2015 г., 11:42:27
Просмотры: 75
Голосов: 0
Если я включаю часть шаблона в header.php таким образом:
<?php get_template_part('templates/social-icons'); ?>
Есть ли способ получить имя шаблона header.php
внутри этой части шаблона? То есть имя шаблона, который включает social-icons.php
?
Мне нужно в social-icons.php динамически получить имя 'header.php', чтобы я мог использовать social-icons.php в других местах и реагировать на имя вызывающего шаблона.
Возможно, с помощью PHP-функций get_included_files()
или pathinfo()
?

codecowboy
1.78K
Все ответы на вопрос
1
0
После того как нашел этот ответ, я использовал следующий код:
$template_tree = mytheme_get_template_tree();
$total = count($template_tree); // подсчет количества элементов в массиве
end($template_tree); // установка указателя на конец массива
$immediate_parent = basename(prev($template_tree)); // получение имени файла предпоследнего элемента
Затем в плагине / functions.php
function mytheme_get_template_tree()
{
$included_files = get_included_files();
$stylesheet_dir = str_replace( '\\', '/', get_stylesheet_directory() );
$template_dir = str_replace( '\\', '/', get_template_directory() );
foreach ( $included_files as $key => $path ) {
$path = str_replace( '\\', '/', $path );
if ( FALSE === strpos( $path, $stylesheet_dir ) && FALSE === strpos( $path, $template_dir ) ) {
unset( $included_files[ $key ] );
}
}
return $included_files;
}
Все еще интересно узнать о других подходах!

codecowboy
1.78K
21 февр. 2015 г. 12:38:32
Похожие вопросы
2
ответов
1
ответов
1
ответов