템플릿에서 사용 된 파일의 현재 이름을 표시하는 것으로 나타났습니다.
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
버그로 선택하기 위해 한 걸음은 멈출 것이지만 , 전제에 전적으로 동의 할 것입니다. 설상가상으로 워드 프레스 핵심 코드를 스캔하고이 문제를 처리 할 수있는 후크가있을 수있는 곳이 약 5 곳 있지만 아직 발견되지 않았습니다. core.trac.wordpress.org에 티켓을 올리는 것이 좋습니다 .