Las plantillas de un tema de WordPress [WordPress Themes II]
Esta es la segunda entrega del tutorial de cómo crear Temas de WordPress desde cero.
Plantilla vs tema, no son lo mismo
Tal y como explicaba en la primera parte del tutorial, un tema es un conjunto de ficheros que le dan apariencia a nuestro sitio web creado con WordPress.
Bien, entre estos ficheros se encuentran diferentes plantillas, que dan la apariencia concreta a según qué sección.
Dicho de otra forma, una plantilla es el fichero que se encarga de representar un tipo de contenido dentro de nuestro tema.
Algunos ejemplos de plantillas podrían ser:
- Página principal
- Visualización de un artículo
- Visualización de una página
- Visualización del archivo de una categoría
- Visualización del resultado de una búsqueda
¿Ves por donde voy? Seguro que si.
Las plantillas básicas de WordPress
Como sabrás, cuando creamos un tema de WordPress podemos crear diferentes plantillas para según el contenido que vayamos a visualizar.
Algunas de las plantillas más utilizadas son:
- home.php
- single.php
- page.php
- category.php
- tag.php
- archive.php
- 404.php
- author.php
- front_page.php
Ya te haces una idea de para qué sirve, ¿verdad?
Cada una de ellas se encarga exclusivamente de representar ese tipo de contenido, nada más.
Personalizando las plantillas de WordPress
Sin entrar en código, te puedo decir que todas las plantillas anteriores pueden ser personalizadas independientemente según el contenido que vayamos a mostrar.
Por ejemplo: supongamos que queremos mostrar la información de un autor del blog, pero de una manera diferente al resto de autores.
En este caso, tendremos una plantilla author.php genérica y, además, tendremos una que será específica para el autor que queremos diferenciar. ¿Cómo hacemos esto? Fácil, añadiendo el id al nombre del fichero.
Por ejemplo, si el autor «Fulanito» tiene el ID 33, nuestro fichero personalizado para dicho autor se llamará author-33.php; si queremos modificar la categoría con id 41, category-41.php y así sucesivamente (page-31.php), etc.
No es complicado, ¿eh?
Hay una forma más «elegante» de hacerlo, pero a mi personalmente no me gusta, porque el «nicename» (o nombre bonito, haha) puede ser modificado. Digamos que podemos crear la plantilla que modifica la apariencia del autor «Fulanito» con author-33.php o con author-fulanito.php. Lo mismo en los ejemplos de category-micategoria.php, page-contacto.php, etc.
Crea tus propias plantillas
Según el proyecto, notarás que este sistema es super potente; o por el contrario, que se queda pequeño.
No te preocupes, puedes crear tus propias plantillas.
En mi caso, suelo utilizar mucho las siguientes:
- about.php
- contact.php
- services.php
Para crear tu propia plantilla sólo tienes que crear el fichero con el nombre que prefieras con la extensión php y añadir el siguiente código al principio del mismo:
<?php /** * Template Name: Nombre de mi plantilla */ ?> |
Y ya está, si vas a cualquier página de tu instalación WordPress, verás que aparece en la barra de la derecha para ser seleccionada; fácil, ¿a que sí?
Jerarquía de las plantillas
Cuando un visitante llega a nuestro sitio web, WordPress ejecuta una serie de comprobaciones para, basándose en la URL, saber qué contenido debe de mostrar.
Este tipo de funciones las veremos más adelante, pero sirven para saber qué contenido está solicitando el visitante.
Algunos ejemplos son is_home(), is_search(), is_category()…
A continuación os dejo el mapa de la jerarquía de las plantillas de WordPress:
Si te fijas, podrás entender el mapa fácilmente; el visitante llega por la izquierda, WordPress realiza la comprobación de qué contenido se está solicitando y empieza a buscar las plantillas correspondientes de izquierda a derecha.
Por ejemplo, supongamos que llega a una página de etiqueta.
Los pasos son los siguientes:
- El visitante llega a nuestro sitio web, concretamente a la etiqueta «sensacion»
- WordPress hace la comprobación con is_tag(), que devuelve afirmativo
- WordPress intenta cargar la plantilla tag-sensacion.php; pero no existe.
- Como el caso anterior fue fallido, el siguiente intento lo hace con tag-46.php (que es el id de la etiqueta «sensacion»); pero tampoco tiene éxito. No tenemos esa plantilla creada en nuestro theme
- El siguiente intento lo hace con la plantilla genérica tag.php.
- Si no existiese esta plantilla, probaría con archive.php
- En última instancia mostrará el contenido con el index.php.
En el siguiente capítulo conoceremos el loop de WordPress. Próximamente…
Hola, gracias por la información, me ha sido de gran ayuda, por ahora estoy dando mis primeros pasos en wordpress, me parece fascinante la potencia y la facilidad en la cual puedo, migrar mis diseños estáticos creados en html a dinamicos con este CMS.
Muy buena información gracias por compartirla