Muestra el nombre del fichero del theme en WordPress
Los dos últimos proyectos que he encarado han sido con plantillas de pago. Uno de ellos apenas ha llevado modificaciones, pero el otro ha sufrido un «make up» bastante intenso y a veces era complicado saber qué fichero tocar para conseguir lo que el cliente solicitaba.
Por esta razón, traigo una función que nos saca el nombre del fichero que está usando el tema en una determinada página para así saber dónde ir a modificar.
Válido para el Front-End
Yo me dedico al front-end e integración de maquetas con WordPress (entre otras muchas cosas), y para mí lo más útil era mostrarlo en el front-end.
Para ello, he creado una función que me saca el dato de una forma muy sencilla:
/** * Muestra el fichero actual de la plantilla * * Crea una variable local con el mismo nombre que el fichero que se está utilizando de la plantilla. * * @param $template La ruta completa a la plantilla actual */ function define_current_template( $template ) { $GLOBALS['current_theme_template'] = basename($template); return $template; } add_action('template_include', 'define_current_template', 1000); |
Esta función nos genera una variable global (tal y como dije en la cabecera de la misma) que se llama $current_theme_template y contendrá el nombre del fichero que se está utilizando en ese momento.
Además, si le pasamos un true como parámetro a nuestra función, nos imprimirá directamente la variable, por lo que sólo tendremos que ir al header.php (o footer.php, o donde queramos) y llamarla de la siguiente manera:
<?php get_current_template(true); ?> |
Conclusión
Esta función es realmente útil por lo que comentaba en líneas anteriores, nos permite saber qué fichero tenemos que modificar en relación al contenido que estamos trabajando.
Como siempre, si te resulta útil o te gusta compártela con tus amigos y dale a me gusta.
Cualquier duda o puntualización puedes agregarla en los comentarios.
hola, me saca error de compilacion.
no se deberia llamar con el nombre de la funcion – define_current_template(true); ??
de todas manera asi no me imprime nada, y probando con echo tampoco.
me podrias ayudar?
Gracias