Introducción a la jerarquía de plantillas de WordPress

Publicado: 2019-12-11

Una de las preguntas clave que se hacen los usuarios de WordPress en algún momento de su vida es la siguiente: ¿cómo consiguen los temas de WordPress mostrar distintas páginas según el contenido que estemos viendo?

La pregunta, además de ser totalmente legítima, es muy interesante. WordPress es capaz de identificar qué contenido está a punto de renderizar y, dependiendo de su tipo, usar una plantilla u otra. Los temas de WordPress no son más que un conjunto de plantillas específicas para cada tipo de contenido con algo de JavaScript para elementos dinámicos y CSS para estilos y colores.

Perfecto, pero… ¿cómo funcionan realmente las plantillas de WordPress? Esto es lo que vamos a ver paso a paso a lo largo de este post.

Sin embargo, antes de comenzar, déjame mostrarte una imagen con la respuesta a esta pregunta:

Jerarquía de plantillas de WordPress
Jerarquía de plantillas de WordPress.

Esta es la jerarquía de plantillas de WordPress. Puedes encontrar toda la información al respecto en el Codex de WordPress, la documentación oficial. Incluso puede interactuar con esta jerarquía en este sitio web genial.

Básicamente, WordPress utiliza una jerarquía de plantillas para representar su contenido. Es decir, WordPress busca dentro del tema que tienes activo un archivo PHP específico. Si existe, WordPress renderiza el contenido usando ese archivo, al que llamamos plantilla. Si no es así, WordPress busca la siguiente plantilla más genérica dentro de la jerarquía. Si existe, WordPress lo usa. De lo contrario, WordPress busca la siguiente plantilla en la jerarquía… y así sucesivamente. Si WordPress no puede encontrar un archivo de plantilla específico en su tema, utiliza el archivo index.php predeterminado, la más genérica de todas las plantillas.

Ahora, profundicemos en más detalles dentro de la jerarquía de plantillas de algunos de los contenidos de WordPress más comunes.

Plantillas de página

Veamos las plantillas que usa WordPress para representar páginas y tipos de contenido simple.

Publicaciones y tipos de publicaciones personalizadas

WordPress analiza los siguientes archivos PHP en su tema para representar una publicación de blog o un tipo de publicación personalizada:

  1. single-{post-type}-{slug}.php : si desea una plantilla específica para una publicación específica o un tipo de publicación específico, debe crear este archivo PHP en su tema. Su nombre incluye el nombre del tipo de publicación ( {post-type} ), que puede ser publicación o cualquier otra cosa ( producto , si usa WooCommerce). Y también debes escribir el slug o permalink, llámalo como quieras, en el nombre de la plantilla. Por ejemplo, si quiero usar una plantilla específica para esta publicación, tendría que crear el archivo single-post-introduction-to-the-wordpress-template-hierarchy.php .
  2. single-{post-type}.php : si queremos afectar todo el contenido de un tipo de publicación específico (todas las publicaciones o todos los productos), usaremos esta plantilla, cuyo nombre solo incluye el nombre del tipo de publicación.
  3. single.php : WordPress usa esta plantilla para representar cualquier contenido único (una publicación específica, un producto específico, etc.).
  4. singular.php : esta es otra plantilla de nivel superior para representar contenido único de cualquier tipo.
  5. index.php : si no se encuentra nada de lo anterior, WordPress usa esta plantilla genérica para representar su contenido.

Recuerda que en el directorio de temas de WordPress tienes a tu disposición miles de ejemplos de temas de WordPress. Te recomiendo que descargues uno e intentes, como ejercicio de aprendizaje, inspeccionar sus archivos PHP e identificar las plantillas que acabo de presentar.

Al hacerlo, puede comprender qué plantillas usan dentro de la jerarquía de las plantillas de WordPress y ver qué contenido tiene cada una de estas plantillas. Sin duda, si quieres aprender sobre temas de WordPress, esto es algo obligatorio. Además, ¡es gratis!

Páginas regulares

Al igual que con las publicaciones y otros tipos de publicaciones, WordPress utiliza una jerarquía de plantillas para representar las páginas:

  1. Plantilla seleccionada: si desde el cuadro de atributos de la página al editar una página seleccionas una plantilla específica, siempre tiene prioridad sobre todas las demás. Puede aprender a crear plantillas personalizadas aquí.
  2. page-{slug}.php : si desea que una página específica tenga su propia plantilla, cree esa plantilla en un archivo PHP que tenga el slug de la página en el nombre.
  3. page-{id}.php : también puede usar directamente la ID de la página de WordPress donde se aplica la plantilla.
  4. page.php : esta plantilla se aplica a todas las páginas de WordPress, a menos que ya se haya aplicado una de las plantillas anteriores en la jerarquía.
  5. singular.php : la plantilla singular es la plantilla predeterminada para todas las páginas, publicaciones, productos, etc. Esta plantilla rara vez se aplicará, ya que la mayoría de los temas de WordPress ya incluyen una plantilla page.php .
  6. index.php : como siempre, esta es la plantilla alternativa predeterminada de WordPress.

Ahora prueba a revisar de nuevo el tema que descargaste antes y verás que ahora entiendes un poco más los demás archivos que aparecen ahí. Seguramente ahora puede identificar archivos PHP para plantillas de página.

Páginas especiales

En WordPress existen otras páginas especiales que también hacen uso de plantillas específicas para renderizar contenido. Un ejemplo de esto es la página principal del sitio web. Recuerda que la página principal se selecciona en los Ajustes de WordPress, dentro del submenú Lectura . La siguiente jerarquía de plantillas se utiliza para esa página:

  1. front-page.php : si usa una página estática como página principal en WordPress, primero intentará aplicar la plantilla front-page.php .
  2. home.php : si no se encuentra la plantilla anterior, WordPress intenta usar esta plantilla. Esta plantilla también se usa si en lugar de seleccionar una página estática como página principal, ha seleccionado la opción para mostrar sus últimas publicaciones.
  3. index.php : nuevamente, la plantilla predeterminada siempre está presente.

La página que muestra los resultados de búsqueda de tu WordPress también es una página especial que puede tener su propia plantilla. Para hacer esto puedes usar la plantilla search.php . Si su tema no lo define, index.php se utilizará como de costumbre.

Finalmente, la página que se muestra cuando tu sitio web devuelve un error 404 también se puede configurar con una plantilla específica de WordPress. Debe crear el archivo 404.php en su tema y luego se aplicará esta plantilla.

Plantillas para archivos

Hasta ahora hemos visto plantillas para contenido único (excepto en el caso de los resultados de búsqueda). Pero en WordPress también hay archivos, que pueden generar más de un elemento en una página. Veamos qué jerarquía de plantillas usa WordPress en este caso.

Categorías y Etiquetas

WordPress utiliza la siguiente jerarquía de plantillas para las categorías:

  1. category-{slug}.php : esta plantilla se utiliza para representar la lista de contenido (generalmente publicaciones) que pertenecen a una categoría específica. En particular, se usará al renderizar la categoría cuyo slug aparece en el nombre del archivo PHP.
  2. category-{id}.php : si prefiere usar ID de categoría en lugar de slugs, también puede hacerlo. Por ejemplo, si desea aplicar una plantilla a la categoría 13, cree el archivo de plantilla con el nombre category-13.php .
  3. category.php : la plantilla predeterminada para todas las categorías.
  4. archive.php : esta es la plantilla más genérica para archivos en WordPress.
  5. index.php : nuevamente, si su tema no incluye una plantilla más específica, WordPress usará este archivo de manera predeterminada.

La siguiente jerarquía de plantillas se utiliza para las etiquetas:

  1. tag-{slug}.php : si la etiqueta se llama entrevista , podemos usar la plantilla tag-interview.php en caso de que queramos diseñar una plantilla específica para esa etiqueta en WordPress.
  2. tag-{id}.php : también podemos definir la plantilla a través de la ID de la etiqueta.
  3. tag.php : al igual que con category.php , esta es la plantilla genérica para etiquetas.
  4. archive.php : de nuevo, esta plantilla se usará si no existe ninguna de las anteriores.
  5. index.php : como siempre, esta es la plantilla alternativa.

Tipos de publicaciones personalizadas y taxonomías personalizadas

Si tenemos tipos de contenido personalizados, podemos usar la plantilla archive-{post_type}.php donde post_type es el slug del tipo de publicación personalizada. Esto generará la lista de contenidos para ese tipo de publicación.

Para taxonomías personalizadas, WordPress utiliza la siguiente jerarquía de plantillas:

  1. taxonomy-{taxonomy}-{term}.php : si tienes una taxonomía personalizada llamada videojuegos en WordPress y quieres crear una plantilla con un diseño específico para el término deportes dentro de esa taxonomía, tendrás que crear el archivo taxonomy-videogames-sports.php para usar esa plantilla.
  2. taxonomy-{taxonomy}.php : si desea usar la misma plantilla para todos los términos de taxonomía, simplemente use taxonomy-videogames.php , en el ejemplo anterior.
  3. taxonomy.php : esta es la plantilla predeterminada para todas las taxonomías.
  4. archive.php : si no existe ninguna de las plantillas anteriores, esto se aplica.
  5. index.php : de nuevo, esta es la plantilla alternativa predeterminada.

Con todas estas explicaciones ya deberías tener todo lo necesario para crear e identificar plantillas en tus temas de WordPress.

Para resumir

Comprender la jerarquía de las plantillas de WordPress es clave para poder comprender los temas e incluso desarrollar uno propio. Nunca está de más echarle un vistazo a esto y saber cómo funciona para coger confianza cuando empieces a modificar el código PHP del tema que usas en nuestro WordPress.

Hay algunas otras plantillas, pero se usan con menos frecuencia. De todos modos, recuerda que siempre puedes ir a consultar la documentación del Codex de WordPress. Allí encontrará todo lo que no fue explicado aquí.

¿Qué piensas de todo esto? ¿Sigues usando plantillas para tu contenido de WordPress o ya estás construyendo todos los diseños con bloques? No olvide dejarme un comentario a continuación si ha llegado al final de la publicación. ¡Me encantaría saber cómo usa las plantillas de WordPress!

Imagen destacada de Edvard Alexander Rlvaag en Unsplash .