Я знайшов це для відображення поточного імені файлу, що використовується в шаблоні:
function get_template_name () {
foreach ( debug_backtrace() as $called_file ) {
foreach ( $called_file as $index ) {
if ( !is_array($index[0]) AND strstr($index[0],'/themes/') AND !strstr($index[0],'footer.php') ) {
$template_file = $index[0] ;
}
}
}
$template_contents = file_get_contents($template_file) ;
preg_match_all("Template Name:(.*)\n)siU",$template_contents,$template_name);
$template_name = trim($template_name[1][0]);
if ( !$template_name ) { $template_name = '(default)' ; }
$template_file = array_pop(explode('/themes/', basename($template_file)));
return $template_file . ' > '. $template_name ;
}
Джерело: отримати назву шаблону сторінки на сторінці
Це працює досить добре, за винятком того, що в бекенді, у вікні вибору шаблонів, я отримую цей потворний додатковий запис:
Хтось має ідею, як це виправити? Я навіть не знаю, чому ця функція викликається в бекенді. Чи є така умовна функція, як is_frontend()
- можливо, це вирішило б проблему?
template_include
гак, що пропонував t31, вирішити проблему? А може, я вас зрозумів неправильно.
functions.php
помилкою, я повністю погоджуся з вашою умовою. Що ще гірше, я просканував основний код WordPress і виявив близько 5 місць, де міг би бути гачок, щоб ви могли вирішити цю проблему, але я не знайшов жодного. Я б запропонував опублікувати квиток на core.trac.wordpress.org .