Encontré esto para mostrar el nombre actual del archivo utilizado en la plantilla:
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 ;
}
Fuente: obtener el nombre de la plantilla de página en una página
Funciona bastante bien, excepto que en el backend, en el cuadro de selección de plantilla, obtengo esta entrada extra fea:
¿Alguien tiene alguna idea de cómo solucionarlo? Ni siquiera sé por qué esta función se llama en el backend. ¿Hay una función condicional como is_frontend()
: tal vez esto resolvería el problema?
template_include
engancha, ¿qué t31os sugirió, resolver el problema? O tal vez te he entendido mal.
functions.php
como un error, estaré completamente de acuerdo con su premisa. Para empeorar las cosas, escaneé el código central de WordPress y encontré alrededor de 5 lugares donde podría haber un enganche para permitirle manejar este problema, pero no encontré ninguno. Sugeriría publicar un ticket en core.trac.wordpress.org .