Как получить имя шаблона, который включает текущий файл в 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()?

0
Все ответы на вопрос 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;

}

Все еще интересно узнать о других подходах!

21 февр. 2015 г. 12:38:32