• Saltar a la navegación principal
  • Saltar al contenido principal
Código Genesis

Código Genesis

Tutoriales de WordPress y Genesis Framework

  • Empieza aquí
  • Cuenta
    • Suscripción
    • Perfil
    • Actualizar tarjeta
    • Favoritos
    • Salir
  • Suscribirse
  • Acceder

Usar la plantilla de archivo para distintos Custom Post Types en un tema de WordPress

Descubre en este tutorial cómo usar la misma plantilla de archivo para mostrar distintos Custom Post Types (CPT), en un tema de WordPress.

La plantilla de archivo es la encargada de mostrar el listado de entradas.

Es muy habitual que un tema de bloques incluya la plantilla archive.html, que es la encargada de su diseño. Y esta plantilla suele utilizar el bloque de listado de contenidos (query loop block), en el que tienes que elegir el tipo de entrada que quieres que se muestre, por ejemplo, posts.

Esto tiene la limitación de que, si tienes varios tipos de entrada (podcast, masterclass, tutoriales…) tienes que duplicar la plantilla y renombrarla (archive-podcast.html…).

Pero si tienes muchos Custom Post Types, los cuales quieres mostrar con el mismo diseño en la página de archivo, puedes usar un poco de código para evitar la duplicación de la plantilla.

Vamos a ver cómo:

Pasos para utilizar la misma plantilla de archivo para diferentes CPT

1. Crea el diseño de la plantilla archive.html

Ve al «Editor del sitio» y elige la plantilla archive.html (si no existe la puedes crear) y añade el bloque de listado de contenidos y crea el diseño que quieres.

Si tienes dudas, en este tutorial te explico a fondo como funciona el bloque y sus posibilidades.

2. Añade la lógica que permite filtrar el contenido

Añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:

Para ver este código y los otros 2107 snippets de esta web,
identifícate o suscríbete aquí.

En este código usar el filtro query_loop_block_query_vars junto con el condicional is_post_type_archive para indicar las entradas de qué Custom Post Type se cargarán en cada caso.

Con el ejemplo anterior indicas que, si la página de archivo es de podcast, el bloque de listado de contenido debe filtrar solo las entradas de este CPT. Pero puedes ampliar el condicional para que incluya todos los CPT que necesites.

Esta estrategia puede ahorrarte bastante tiempo en una web con muchos CPTs, permitiendo que los cambios que realices en un solo fichero se muestren en todas las páginas de archivo.

Conclusión

Si tienes una instalación con muchos CPTs y no quieres tener que crear una plantilla de archivo para cada una de ellas, ahora sabes cómo conseguirlo con un poco de código.

¿Alguna duda? Te leo en los comentarios.

Y si quieres darme una sugerencia para próximos tutoriales, déjamela en el formulario de contacto. Ventajas de ser suscriptor. 😉

Tutoriales relacionados

  • https://codigogenesis.com/bloque-listado-contenidos-wordpress/
  • https://codigogenesis.com/crear-plugin-funcionalidades-wordpress/

Archivo FSE PHP WordPress

Nahuai Badiola

Desarrollador web especializado en WordPress y Genesis Framework. CEO de Código Genesis y cofundador de OsomPress (temas y plugins para WordPress).

Para dejar dudas o preguntas sobre este código, puedes identificarte o suscribirte.

  • Empieza aquí
  • Sobre Código Genesis
  • Preguntas frecuentes
  • Contacto
  • Feed

Aviso legal · Política de privacidad · Política de cookies · Condiciones de contratación
Copyright © 2026 · Código Genesis

close-icon

¿Has olvidado tu contraseña?