Ich habe festgestellt, dass der aktuelle Name der in der Vorlage verwendeten Datei angezeigt wird:
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 ;
}
Quelle: Name der Seitenvorlage auf einer Seite abrufen
Es funktioniert ganz gut, außer dass ich im Backend im Template-Auswahlfeld diesen hässlichen zusätzlichen Eintrag bekomme:
Hat jemand eine Idee, wie man das behebt? Ich weiß nicht einmal, warum diese Funktion im Backend aufgerufen wird. Gibt es eine bedingte Funktion wie is_frontend()
- vielleicht würde dies das Problem lösen?
template_include
Haken nicht , welche t31os vorgeschlagen, das Problem zu lösen? Oder vielleicht habe ich dich falsch verstanden.
functions.php
als Fehler bezeichne, stimme ich Ihrer Prämisse vollkommen zu. Um die Sache noch schlimmer zu machen, habe ich den WordPress-Kerncode gescannt und ungefähr 5 Stellen gefunden, an denen es einen Haken geben könnte, mit dem Sie dieses Problem lösen könnten, aber ich habe keinen gefunden. Ich würde vorschlagen, ein Ticket auf core.trac.wordpress.org zu veröffentlichen .