martes, 29 de marzo de 2016

Cómo detectar la ruta de la plantilla activa en WordPress

Plantillas WordPress
FUENTE:http://www.danielnabil.com/blog/como-detectar-ruta-plantilla-wordpress/
Cuando estamos desarrollando una página web en WordPress es muy útil saber en cada momento qué plantilla utiliza el sistema para mostrar la página en la que nos encontramos.
La jerarquía de plantillas de WordPress no es especialmente compleja, pero a veces es fácil perderse, especialmente si estamos trabajando con algún theme desarrollado por otro o que utiliza muchos tipos de entradas personalizados (custom posts types), formatos de entrada (post formats), diferentes taxonomías, etiquetas, etc.
Para no tener que utilizar el sistema de prueba y error, una buena solución para detectar la ruta de la plantilla activa es hacer que nos aparezca una nota de ayuda visible, algo así como el “Estás aquí” que se usa en los planos de edificios o ciudades.
Para ello tenemos que añadir este código a nuestro archivo functions.php:


1
2
3
4
5
// Detectar e imprimir la ruta de la plantilla activa
function ruta_plantilla() {
     global $template; ?>
     <div id="ruta_plantilla" style="background-color: #900; color: #fafafa; font-size: 11px; height: 30px; line-height: 30px; padding: 0 10px; position: absolute; top: 0; right: 0; text-align: right;  width: auto; z-index: 99999;"><?php print_r($template); ?></div>
<?php }
Con esto hemos creado una función llamada “ruta_plantilla” y hemos envuelto el resultado en un bloque con estilo (totalmente opcional, por supuesto): una barra superior de color rojo que flota sobre el diseño. También podemos eliminar el estilo y añadirlo desde una hoja CSS separada.
Después, tenemos que especificar dónde queremos que se imprima nuestra función. Para ello pegamos el siguiente código donde queramos, por ejemplo, en el archivo header.php:
1
2
3
4
<?php // Si es un usuario registrado, imprimimos la ruta completa
      if (is_user_logged_in()) {
      ruta_plantilla();
} ?>
Por si nos olvidamos de eliminarlo cuando la web ya sea pública, siempre es buena idea envolver esta función dentro de un condicional que detecte si estamos o no conectados: is_user_logged_in.
Otra opción más habitual suele ser añadir nuestra función “ruta_plantilla” a la acción “wp-head”, para tenerlo todo en un mismo sitio. Aunque es una solución más sencilla, el problema es que así nos imprimirá la ruta de la plantilla entre las etiquetas <head>, no en el <body>:
1
2
3
4
5
6
// Detectar e imprimir la ruta de la plantilla activa
add_action('wp_head', 'ruta_plantilla');
function ruta_plantilla() {
     global $template;
     print_r($template);
}
El resultado, en cualquier caso, será una barra superior con la ruta completa a la plantilla activa. Por ejemplo:
/var/www/vhosts/dominio.com/httpdocs/wp-content/themes/mitema/front_page.php
Como es una información que no aporta nada al visitante de la web, conviene eliminar esta función al abrir la web al público.

No me atrevo, prefiero un plugin

Si por lo que sea prefieres no tocar el archivo functions.php, puedes utilizar este plugin:
Este plugin te permite además elegir si quieres que se imprima la ruta completa (absoluta), relativa o solo el nombre de la plantilla.

No hay comentarios.:

Publicar un comentario