Esto va a ser la primera de una serie de entradas explicando la jerarquía de plantillas de WordPress. En esta primera entrada, voy a intentar hacer un resumen general y en las posteriores, explicaré detalladamente los tipos de archivo de las plantillas.
Para empezar a conocer como es la jerarquía de plantillas de WordPress en nuestros themes, tienes que saber que en función de la URL que carga el navegador de tú página web, WordPress es capaz de saber que plantilla tiene que cargar.
Podéis ver un esquema de cómo se usan las plantillas en https://wphierarchy.com.

Siguiendo la estructura de ficheros que ves, WordPress tiene las siguientes plantillas:
- Archive: son plantillas que te muestran un listado de artículos en función del autor, categoría, etiquetas, fecha, taxonomías personalizadas, custom post types.
- Singular: muestra contenido individual, es decir, páginas, entradas del blog, contenido de un custom post type.
- Site Front: con estos ficheros mostrará el contenido de tu frontpage, página de inicio.
- Blog Posts Index: muestra el loop de entradas de tu blog.
- Error 404: cuando alguien entre en tu página web y ese contenido que intenta visitar no existe, WordPress automáticamente mostrará la plantilla de error 404.
- Search Result: plantilla para mostrar los resultados de una búsqueda en tu sitio web.
Una vez explicado las diferentes plantillas, sigamos viendo la imagen del esquema de la jerarquía.
Vemos que hay muchos archivos de plantilla de izquierda a derecha. Esto no quiere decir que un theme de WordPress tenga que usar todas ellas, de hecho si miramos a la derecha, vemos que existe una plantilla index.php donde terminan el resto de plantillas que vemos. Y es que un theme de WordPress puede trabajar únicamente con el fichero index.php, el resto de plantilla digamos que pueden ser opcionales para un theme pero claro, si solo usamos el fichero index.php… todas las páginas se van a ver igual.
Si quieres darle funcionalidad a tu desarrollo y que una página se vea diferente a una entrada del blog o que la página de inicio sea diferente al resto, debes de usar plantillas diferentes. Y basándonos en la imagen de la jerarquía de plantilla WordPress cuando entra en una URL de tu web, identifica qué tipo de contenido se trata (página, entrada, …) y va leyendo de izquierda a derecha.
Entendiendo la jerarquía
Pongamos como ejemplo que un usuario visita la URL de tu sitio web midominio.com/contacto/. WordPress sabrá que contacto, es una página y viendo el esquema de arriba sabe que tiene que empezar a leer por la rama tipo ‘Singular Page’. Contacto es una entrada, no. Es una página con contenido individual. Pues entonces seguiría esta ruta:
- page-$slug.php: si por ejemplo, existiría la plantilla page-contacto.php, WordPress terminaría renderizando el contenido de este fichero. ¿No existe dentro del directorio de tu tema? WordPress seguiría recorriendo la estructura.
- page-$id.php: imaginemos que la id que le asigna WordPress a tu página de contacto es 140. Si existiría el fichero page-104.php, el contenido que mostrará es el que contenga aquí.
- page.php: como vemos esta página no es tan específica como las anteriores, no le pasamos ningún identificativo al nombre del archivo. Y es que si no existe ninguna de las anteriores plantillas, WordPress terminará usando el contenido de esta plantilla para mostrar todas las páginas de nuestro sitio web. Pero si tampoco está creada dentro de nuestra estructura…
- singular.php: existe esta plantilla menos específica Con este fichero creado, mostrarás el contenido de tus páginas pero WordPress si se diera el caso, también podría mostrar el contenido de las entradas de tu blog con esta misma plantilla. Es decir, páginas y entradas usarían la misma plantilla.
- index.php: WordPress llegaría a renderizar esta página si dentro de la rama de páginas no encontraría ninguna de las citadas anteriormente. Como he dicho más arriba, para que un tema de WordPress muestre contenido, solo le haría falta contener este archivo, index.php.
Espero que por lo menos te hayas quedado el concepto de cómo renderiza WordPress el contenido cuando navegamos por las distintas secciones de la web.
En posteriores entradas explicaré como funcionan las distintas plantillas que dispone en su jerarquía WordPress. De momento están publicadas:
Deja una respuesta