Desarrolla temas de WordPress más dinámicos utilizando template tags

Las Template Tags son utilizadas dentro de un blog WordPress para poder mostrar información dinámica y mantener el tema siempre actualizado. El uso de estas herramientas nos permite hacer cambios rápidamente sin necesidad de alterar el código cada vez que necesitamos actualizar información.

¿Qué es una template tag?

Podemos definirlas como una instrucción que enviamos a WordPress, para pedirle que nos entregue un dato o para indicarle una acción. Es un código escrito en lenguaje PHP que viene por defecto en cada instalación de WP y está a nuestra disposición para hacer los temas realmente dinámicos. Si no ponemos las template tags a trabajar estamos arriesgándonos a cometer errores y realizar código que no se adecúa a los estándares de WordPress.

Si el tema de WordPress está programado de la manera correcta, la mayoría de los datos visibles en la portada son recogidos por una serie de template tags.

EJEMPLO: BLOGINFO PARA MOSTRAR EL TÍTULO

El nombre del blog se ve en el header porque la etiqueta <?php bloginfo('name');?> le indicó a WP que debía conseguir los datos desde el panel de administración. Si revisamos a nivel de código, en header.php no vamos a ver el nombre del blog, sino que veremos la template tag que se encarga de llamar el título del blog, completado en Ajustes > General.

Así como name llama el título, hay una amplia variedad de otras indicaciones que podemos anexar a la template tag bloginfo, que devuelven datos específicos. Estas órdenes son denominadas parámetros y varían dependiendo de la etiqueta. Es importante conocer los usos de cada etiqueta y su conjunto de parámetros para poder sacar el máximo de WordPress.

Si bloginfo('description') no funciona, revisa que el plugin “All in One SEO Pack” no esté sobreescribiendo la configuración del blog. Si está completado el campo “Description” en este plugin evitará que la descripción del blog configurada desde el panel de administración de WordPress se muestre.

¿Cómo escribo una template tag?

WordPress está escrito en PHP, por lo tanto la sintaxis incluirá los elementos de código de apertura y cierra que hacen posible añadir funciones dentro de una estructura HTML, <?php ?>.

Cada template tag es una función definida en los archivos core de WP — son funciones predefinidas por los desarrolladores del sistema que no se incluyen en el archivo functions.php de tu tema –. Las funciones, sean prefabricadas o realizadas por ti, poseen un nombre y unos paréntesis donde podremos incluir parámetros (o no).

Si la función está programada para añadir parámetros, los mismos irán incluidos siempre dentro de los paréntesis.

No entiendo PHP y escribir los datos dentro del HTML es más simple

Para poder utilizar las template tags no necesitas ser programador, WordPress ha desarrollado una lista extensa de funciones reutilizables para sus usuarios y lo más recomendable es aprovecharlas. Tu código será más limpio y podrás hacer cambios en el panel de administración sin interactuar directamente con el código, minimizando la posibilidad de romper etiquetas y causar errores en tu sitio.

¿Cómo agrego parámetros?

Cada función es diferente, y los parámetros son específicos de cada una. Hay template tags que no necesitan atributos extra porque directamente realizan una acción, hay template tags que se comportan como una función de PHP y hay otras que reciben el nombre query-string y sirven para simplificar aquellas de estilo PHP que aceptan muchos argumentos. Puede parecer que su complejidad va en aumento, pero respetando la sintaxis adecuada es muy sencillo incluirlas en nuestros themes.

TEMPLATE TAGS SIN ATRIBUTOS

Esta clase de template tags son funciones que no aceptan opciones, fueron creadas para desempeñar una acción en particular y ninguna otra. Son las más sencillas de escribir ya que su “anatomía” es la siguiente

<?php nombre_funcion();?>

Un ejemplo de esta clase de template tags es la función que devuelve la URL del enlace permanente del artículo que está siendo procesado por la loop. <?php the_permalink();?> no admite parámetros, siempre realizará la misma acción.

TEMPLATE TAGS CON PARÁMETROS EN ESTILO PHP

Algunas template tags que aceptan parámetros requieren que los mismos sean escritos en el estilo por defecto de PHP, los argumentos son indicados escribiendo uno o más valores dentro de los paréntesis. Hay template tags que aceptan más de un parámetro, en ese caso es importante recordar dos cosas:

  • Cada parámetro se separa del siguiente por una coma.
  • El orden en que escribimos los parámetros es importante.
Ejemplos de template tags que admiten parámetros en estilo PHP

bloginfo acepta únicamente un parámetro denominado show. Este argumento define qué información del blog será requerida: nombre, descripción, email del autor, codificación de caracteres, etc.

the_content admite dos parámetros, debemos seguir las guías ennumeradas anteriormente para agregarlo correctamente. El orden en este caso será muy importante, ya que el primer argumento indica el texto que se mostrará en el link “more” y el segundo define si este link se muestra o no.

PARÁMETROS QUERY-STRING

Utilizar el estilo query-string provee un marco más sencillo de emplear a aquellas funciones con parámetros en estilo PHP que presentan un número alto de argumentos. La ventaja que presenta emplearlas es la posibilidad de alterar aquellos parámetros que necesitamos alterar, sin tener que redefinir los demás.

No todas las PHP function-style template tags poseen su equivalente en query-string. Como WP advierte en su Codex, aquellas que tienen equivalente probablemente lleven el prefijo wp_ pero lo mejor es chequear en la documentación para conocer el modo de uso correcto.

Configurar un subgrupo de parámetros

Un ejemplo de esta clase de template tags es wp_list_authors, cuya función en estilo PHP era list_authors (ahora deprecated, utilizar wp_list_authors). Esta función presenta varios parámetros, y si deseamos definir solamente un subgrupo de ellos podemos hacerlo del siguiente modo:

<?php wp_list_authors('show_fullname=1&optioncount=1&orderby=post_count&order=DESC&number=3'); ?>
Algunos detalles sobre la sintaxis de query-strings
  • Todos los parámetros están encapsulados dentro de los paréntesis y comillas simples ('').
  • Cada argumento utiliza el formato: parámetro=valor.
  • Se separan parámetros con el uso de un ampersand & — a modo de AND –.
  • El orden no es importante pero sí es esencial que todo esté escrito correctamente.
Maneras alternativas de escribir template tags de estilo query-string

Para optimizar la legibilidad es posible añadir un espacio antes y un espacio después de cada símbolo &, esto principalmente debería ayudarnos a chequear que cada parámetro esté escrito como debe ser.

<?php wp_list_authors('show_fullname=1 & optioncount=1 & orderby=post_count & order=DESC & number=3'); ?>

Si tu costumbre es separar las líneas largas de código en varias líneas, separando en cada una un parámetro nuevo hay que tener en cuenta que cada línea debe comenzar con un punto y comilla simple .' y que debe terminar en comilla simple '. El primer parámetro no lleva punto inicial.

<?php wp_list_authors(
                      'show_fullname=1'
                      .'&feed=rss'
                      .'&optioncount=1'
                      ); ?>

La limitación de las template tag en estilo query-string es que algunos caracteres no están admitidos, en este caso debemos valernos de un array asociativo (suena más complicado de lo  que es).

Para simplificar la idea anterior: un array asociativo es un listado de keys con sus respectivos valores. Los array asignan índices por defecto, [0] [1] [2], cuando añadimos una key estamos utilizando índices personalizados, en el caso de WP son parámetros de la template tag. Los índices deben ir entre comillas simples, y seguidos por el operador =>. Los valores pueden ser string, booleanos o numéricos.

Primero creamos una variable con el nombre que nos quede más cómodo, y definimos dentro de un array todos los parámetros necesarios para la template tag. Esta variable nos permitirá introducir caracteres que en la sintaxis ordinaria de una query-string nos hubieran causado errores. En lugar de incluir los parámetros dentro de los paréntesis de la template tag, llamamos a la variable.

<?php $variable = array( 'type'   => 'postbypost',
                       'limit'  => 5,
                       'format' => 'custom',
                       'before' => '<li>&bull;&nbsp;',
                       'after'  => '</li>' );
wp_get_archives($variable); ?>

Comienza a utilizar template tags en tus temas de WordPress

El listado de template tags es largo, pero leyendo atentamente la documentación es posible incluirlas en tus temas y convertir tu blog de WordPress en un sitio dinámico y totalmente personalizado.

El listado completo puede ser encontrado en WordPress Codex, con link a la documentación de cada función.

  • Listado de Template Tags

Para que comiences a practicar te recomiendo los siguientes artículos. Te servirán para añadir funcionalidades interesantes a tu blog sin utilizar plugins, empleando solamente las template tags que WordPress ha preparado para nosotros y un poco de PHP.

Scroll to top