Bunu, şablonda kullanılan dosyanın geçerli adını görüntülemek için buldum:
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 ;
}
Kaynak: bir sayfadaki sayfa şablonunun adını al
Arka uçta, şablon seçme kutusunda, bu çirkin ekstra girişi alıyorum dışında, oldukça iyi çalışıyor:
Bunu nasıl düzeltebileceği hakkında fikri olan var mı? Bu işlevin neden arka uçta çağrıldığını bile bilmiyorum. Gibi bir koşullu işlevi var mı is_frontend()
- belki bu sorunu çözebilir?
template_include
hangi t31os'un önerdiği kanca çözülmedi mi? Ya da belki seni yanlış anladım.
functions.php
bir hata olarak adlandırmaktan bir adım öteye giderken , öncülünüzle tamamen aynı fikirdeyim. Daha da kötüsünü yapmak için, WordPress çekirdek kodunu taradım ve bu sorunu çözmenize izin verecek bir çengelin olabileceği yaklaşık 5 yer buldum, ancak hiçbirini bulamadım. Core.trac.wordpress.org adresinden bir bilet göndermenizi öneririm .