ฉันพบสิ่งนี้เพื่อแสดงชื่อปัจจุบันของไฟล์ที่ใช้ในแม่แบบ:
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
ขอแนะนำ t31os ใดให้แก้ปัญหาเหรอ? หรือบางทีฉันอาจจะเข้าใจผิด
functions.php
เป็นข้อผิดพลาดฉันจะเห็นด้วยอย่างสมบูรณ์กับหลักฐานของคุณ เพื่อให้เรื่องแย่ลงฉันสแกนแกน WordPress และพบว่ามีประมาณ 5 แห่งซึ่งอาจเป็นเรื่องที่ทำให้คุณจัดการกับปัญหานี้ได้ แต่ฉันก็ไม่พบอะไรเลย ผมขอแนะนำให้โพสต์ตั๋วบนcore.trac.wordpress.org