Saya menemukan ini untuk menampilkan nama file saat ini yang digunakan dalam template:
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 ;
}
Sumber: dapatkan nama templat halaman pada suatu halaman
Ini bekerja dengan sangat baik, kecuali bahwa di backend, di kotak pilih template, saya mendapatkan entri ekstra jelek ini:
Adakah yang tahu cara memperbaikinya? Saya bahkan tidak tahu mengapa fungsi ini disebut di backend. Apakah ada fungsi kondisional seperti is_frontend()
- mungkin ini akan menyelesaikan masalah?
template_include
mengait, t31os mana yang disarankan, menyelesaikan masalah? Atau mungkin saya salah paham dengan Anda.
functions.php
sebagai bug, saya akan setuju sepenuhnya dengan premis Anda. Lebih buruk lagi, saya memindai kode inti WordPress dan menemukan sekitar 5 tempat di mana mungkin ada kait untuk memungkinkan Anda menangani masalah ini, tetapi saya tidak menemukannya. Saya sarankan memposting tiket di core.trac.wordpress.org .