Comprender la jerarquía de plantillas de WordPress

En WordPress, las páginas se unen a partir de diferentes archivos de plantilla. Cada archivo de plantilla representa otra parte de la página, y juntos forman todo el contenido de sus páginas individuales, extraído del administrador de WordPress. Sin embargo, qué archivo de plantilla se selecciona realmente se basa en una jerarquía bastante robusta, con una convención de nomenclatura en su raíz. En esta jerarquía, una plantilla predeterminada se reemplaza por archivos de plantilla que son más específicos. Pero esto probablemente se demuestre mejor con un ejemplo.

Supongamos que un usuario visita la página “http://yoursite.com/author/jay”. Primero, WordPress buscará la plantilla etiquetada  author-jay.php . Si ese archivo no existe, entonces busca author.php . Subiendo aún, luego busca archive.php . Finalmente, si no se encuentra, utiliza index.php para representar la página. Cada vez que un usuario visita su página, WordPress asciende en la jerarquía de plantillas hasta que encuentra un archivo de plantilla que coincida. Y esto tiene mucho que ver con cómo se nombran estos archivos.

El flujo de jerarquía para páginas de autor a través de WP Hierarchy

En este artículo, recorreremos la anatomía de un tema de WordPress y avanzaremos paso a paso a través de los diversos componentes de la jerarquía de plantillas.

Archivos de plantilla requeridos

Lo primero que debe tener en cuenta sobre un tema de WordPress es que se requieren ciertos archivos para que un tema funcione. Estos no son todos los archivos de plantilla, pero todos deben existir para que WordPress funcione correctamente.

Por ejemplo, se requieren un archivo functions.php y un archivo style.css . La primera es simplemente una lista de funciones que se utilizan para personalizar WordPress. Este último es una hoja de estilo CSS que, como mínimo, contiene información básica sobre su tema, como el nombre, la descripción y el autor. Dado que ninguno de estos son archivos de plantilla, no nos detendremos demasiado en ellos, pero es útil saber que existen.

Prácticamente todos los demás archivos en el directorio de su tema serán un archivo de plantilla de algún tipo, que se dividen en más o menos dos grupos: los que están fuera del bucle y los que contienen el bucle. El bucle de WordPress se usa para extraer contenido de sus publicaciones y páginas y representarlo en páginas reales. Estos son los archivos que discutiremos extensamente, pero también vale la pena discutir brevemente aquellos archivos que se encuentran fuera del ciclo. Si está buscando una buena introducción a cómo funciona el bucle, Kevin Muldoon escribió un excelente artículo sobre el tema .

A medida que avanzamos a través de los diversos archivos de plantilla que utiliza WordPress, tome nota especial de sus nombres de archivo. Estos nombres de archivo son cómo WordPress sabe qué plantilla usar y cuándo.

Archivos de plantilla fuera del bucle

Cuando me refiero a archivos fuera del ciclo, lo que realmente quiero decir es los componentes de su página fuera de una publicación o contenido principal de la página , el contenido ingresado en el editor de publicaciones. Esto incluye el contenido de su encabezado y pie de página. El encabezado contiene todo el HTML y la metainformación que desea colocar antes de su contenido. El pie de página contiene todo lo que sigue.

Apropiadamente, el archivo de encabezado se llama header.php y el archivo de pie de página se llama footer.php . Ambos archivos son archivos de plantilla necesarios, pero existen fuera del bucle.

Otra plantilla importante es sidebar.php . Esto se usa para cualquier contenido fuera del editor de publicaciones. A menudo, esto se encuentra en el lado izquierdo o derecho de la página, pero en realidad puede ir a cualquier parte. Aquí es donde los temas suelen mostrar widgets y otra información superflua.

Por último, comments.php es la plantilla para el hilo de comentarios que se ve en la parte inferior de la mayoría de las publicaciones de WordPress. Este archivo puede volverse bastante complejo, pero en su forma más simple, simplemente contiene algo de HTML y PHP que indican cómo deben verse los comentarios en su sitio.

Los archivos fuera del ciclo son importantes, pero la estructura principal de un sitio de WordPress depende de los archivos de plantilla que contienen el contenido real de la publicación, o de los archivos que existen dentro del ciclo. Y qué archivo de plantilla se selecciona para cada página depende del orden de una jerarquía de plantillas y de cómo se nombran los archivos dentro de ellas.

Páginas de inicio

Quizás la página más importante en su tema de WordPress es la página de inicio. Cuando un usuario visita tu página de inicio, WordPress buscará un archivo index.php para mostrar la página. Pero index.php es en realidad mucho más poderoso que eso. Es el archivo de plantilla menos específico en su jerarquía y, por lo tanto, se utilizará para cualquier página de su sitio que no tenga un archivo de plantilla especificado. Las páginas de archivo, las páginas individuales, etc., se extraerán de index.php a menos que se incluya otro archivo de plantilla más específico en el tema. Ampliaremos esto un poco más adelante. Por ahora solo recuerda que index.php es absolutamente esencial y un archivo requerido.

Otro archivo que afecta la página de inicio de su sitio es front-page.php . Si este archivo está incluido en un tema, anulará index.php y tendrá prioridad cuando el contenido se represente en su página de inicio. Hay dos formas de usar front-page.php. El primero es generar una lista de publicaciones, que es la versión que ve con más frecuencia. Sin embargo, esta página también se puede utilizar para mostrar una página estática. Cuál de estos se utiliza está determinado por su propia configuración. Si visita Configuración -> Lectura en el administrador de WordPress, verá la opción de incluir una lista de publicaciones de blog o una página estática. Si elige la última opción, puede seleccionar qué página desea mostrar.

Tenga en cuenta que index.php y front-page.php pueden contener exactamente el mismo código y harán que su página de inicio sea exactamente igual. Sin embargo, WordPress solo utilizará front-page.php en la página de inicio de su sitio, mientras que index.php se utilizará como plantilla predeterminada para todas las demás páginas. Entonces, su jerarquía básica para la página de inicio de su sitio se ve así (en el orden de búsqueda de WordPress, de más específico a menos específico):

01
02
front-page.php
index.php

A medida que avancemos a través de otros archivos de plantilla, verá que esta especificidad es extremadamente importante para la jerarquía de su plantilla.

Páginas de archivo

Las páginas de archivo son páginas que muestran una lista de publicaciones extraídas de un grupo específico. Esto incluye páginas de autor, páginas de categoría, páginas de tipo de publicación personalizada, páginas de fecha y cualquier otro lugar donde las páginas se agrupen de manera significativa.

La plantilla predeterminada para las páginas de archivo se titula, como era de esperar,  archive.php . Si no se indica un archivo de plantilla más específico para una página de archivo, se utilizará archive.php. Archive.php no es técnicamente necesario y, si no existe, las plantillas se renderizarán desde index.php. Sin embargo, es una buena idea incluir al menos un archivo archive.php de nivel superior con un bucle que estructure su lista. Por supuesto, también hay archivos de plantilla que viven más profundamente en la jerarquía de plantillas, que se pueden usar para anular el archivo de plantilla de archivo predeterminado.

El archivo archive.php en el tema de guiones bajos

La jerarquía de las páginas de archivo básicas es bastante simple:

01
02
archive.php
index.php

Página del autor

Una página de autor es un subconjunto de un archivo que solo muestra publicaciones de un autor específico. Por ejemplo, un usuario puede visitar «http://yoursite.com/author/jay» y esto mostrará una lista de publicaciones escritas por Jay. De forma predeterminada, esta página utilizará archive.php como su archivo de plantilla. Pero si quieres ser aún más específico, puedes crear un archivo llamado author.php . Este archivo se usará para mostrar todas las páginas del autor y anulará el archivo archive.php predeterminado.

Pero puede obtener aún más detalles e incluir un archivo que represente el contenido para un autor específico. Esto se hace creando un archivo llamado author-[id].php o author-[nicename].php . En el ejemplo anterior, podríamos crear un archivo llamado «author-jay.php» y esto anulará los archivos archive.php y author.php para mostrar contenido.

Para las páginas de autor, puede comenzar a ver cómo WordPress trata la jerarquía de plantillas:

01
02
03
04
05
author-[nicename].php
author-[id].php
author.php
archive.php
index.php

Página de categoría

Las páginas de categoría funcionan de la misma manera que las páginas de autor. Por ejemplo, si estamos visitando «http://yoursite.com/category/my-category», entonces, de forma predeterminada, se utilizará el archivo archive.php. Pero la creación de un archivo category.php anula la plantilla predeterminada y se usa para representar esta página. Y al igual que las páginas de autor, también puedes especificar una determinada categoría usando category-[slug].php o category-[id].php . En ambos casos, esta plantilla tendrá prioridad sobre el archivo de plantilla de categoría predeterminado.

La jerarquía de las páginas de categoría refleja la de los autores:

01
02
03
04
05
category-[slug].php
category-[id].php
category.php
archive.php
index.php

Otras páginas de archivo

Con suerte, los ejemplos anteriores le darán una idea de cómo funcionan las páginas de archivo en la jerarquía de plantillas. Pero esto no solo se aplica a las páginas de autor y categoría. De hecho, esto se puede usar para cualquier taxonomía en WordPress.

Por ejemplo, si quiero crear un archivo de plantilla que solo se aplique a las páginas de etiquetas, podría crear un archivo llamado tag.php o incluso tag-[id].php para profundizar aún más. Para crear un archivo de plantilla específico para las páginas de fechas, simplemente cree un archivo llamado date.php .

La única excepción a esto son las páginas de archivo para tipos de publicaciones personalizadas . Al igual que otros tipos de taxonomía, se utilizará el archivo archive.php. Pero si desea utilizar una plantilla para un tipo de publicación personalizado específico, entonces la convención de nomenclatura es archive-[post_type_name].php . Aparte de eso, esto funciona exactamente igual. Si desea la lista completa de nombres de archivo para las páginas de archivo, se enumeran en el códice de WordPress .

Páginas individuales

Con una comprensión firme de cómo funcionan las páginas de archivo, podemos pasar a las páginas individuales de su sitio de WordPress. Estos incluyen páginas individuales como publicaciones individuales, páginas estáticas, publicaciones adjuntas y publicaciones individuales en tipos de publicaciones personalizadas.

Publicar páginas

Las páginas de publicación se refieren a cualquier página individual que se encuentre en el tipo de publicación «Publicaciones», o en un tipo de publicación personalizada que haya creado. La plantilla general para publicaciones individuales es el archivo single.php . Si solo se incluye un archivo single.php, todas las publicaciones individuales, incluidas las publicaciones adjuntas individuales y los tipos de publicaciones personalizadas, se mostrarán utilizando esta plantilla. No se requiere el archivo single.php y, si no se incluye uno, se usará el archivo index.php.

El archivo single.php en el tema de guiones bajos

Si desea especificar una plantilla para la publicación de un tipo de publicación específico, puede usar la convención de nomenclatura single-[post_type_name].php . Si su tipo de publicación se llama «Portafolio», por ejemplo, entonces un archivo de plantilla personalizado debe llamarse single-portfolio.php .

También es posible ser más específico con las páginas de archivos adjuntos, utilizando el archivo adjunto.php para especificar cómo deben verse los archivos adjuntos. Incluso puede obtener más detalles al indicar un tipo MIME específico para los archivos adjuntos, como image.php o video.php . Al final, la jerarquía para publicaciones individuales se ve así:

01
02
03
04
05
06
image.php (or video.php, text.php, etc.)
attachment.php
single-attachment.php
single-[post_type_name].php
single.php
index.php

Paginas

Las páginas son un caso especial y se refieren a aquellas piezas individuales de contenido que viven en el tipo de publicación «Páginas» en el administrador de WordPress. Al igual que otros tipos de contenido, puede especificar una plantilla predeterminada creando un archivo de plantilla llamado page.php . Al igual que los demás, este archivo no es necesario y, si no está presente, se utilizará index.php. Page.php solo representará plantillas para páginas.

A diferencia de las publicaciones individuales, en realidad es posible crear una plantilla para una página muy específica usando page-[id].php o page-[slug].php . Estos archivos de plantilla solo se aplicarán a la página única a la que están asignados. Todos los demás se representarán con page.php.

Pero las páginas también cuentan con un sistema completo de plantillas. Las plantillas de página de WordPress son bastante complejas, pero se utilizan para crear diferentes diseños que se pueden aplicar fácilmente a las páginas a través de un menú desplegable en el administrador. Kevin Muldoon escribió un excelente artículo  sobre cómo funcionan. Si especifica una plantilla específica, esto anulará cualquier otro archivo de plantilla en la jerarquía. Por lo tanto, si elige una plantilla para la ID de página 4, pero también tiene un archivo page-4.php , entonces se usará la plantilla que eligió, no page-4.php.

El orden general de las páginas se ve así:

01
02
03
04
05
custom template
page-[slug].php
page-[id].php
page.php
index.php

Otras plantillas

Los archivos de plantilla discutidos anteriormente cubren la mayoría de las páginas que se mostrarán en cualquier sitio de WordPress. Sin embargo, hay un par de valores atípicos a tener en cuenta. El primero es el archivo 404.php , que se mostrará cada vez que no se pueda encontrar una página o un usuario haya escrito mal su URL. Escribí una publicación sobre cómo manejar páginas 404 con plantillas personalizadas.

Otra página que puede ver a veces es search.php . Esta es la plantilla que se utilizará cuando se muestren los resultados de la búsqueda. Sin embargo, esto también se maneja a veces en el archivo index.php de un tema.

Inmersión en la jerarquía de plantillas

La jerarquía de plantillas de WordPress es más una referencia que cualquier otra cosa. Hay una convención de nomenclatura estricta que debe seguir, pero todo encaja a medida que avanza en el desarrollo o la personalización del tema. Si desea una guía rápida, siempre puede visitar el gráfico interactivo en WP Hierarchy que le indica qué archivos de plantilla se usan y cuándo.

En temas codificados premium y personalizados, probablemente verá un nivel de complejidad que se extiende incluso más allá de los parámetros discutidos en estos artículos. Esto a veces significa dividir fragmentos de contenido en archivos de fragmentos de contenido individuales o especificar una serie de plantillas que se distribuyen por todo el sistema. Sin embargo, al usar la jerarquía de plantillas como guía, puede ser bastante sencillo comprender cómo se une un tema y, lo que es más importante, dónde puede modificarlo.

Miniatura del artículo de Dvoishnik / shutterstock.com