Caso de estudio

Tema WordPress VGS

Rodrigo WordPress VGS es un tema personalizado desarrollado a partir del starter theme _tw para convertir un diseño de Figma en una página de inicio funcional dentro de WordPress. El proyecto combina maquetación responsive con Tailwind CSS, componentes PHP reutilizables, sliders con SwiperJS, contenido editable mediante ACF y un Custom Post Type registrado desde un plugin propio.

El objetivo no era únicamente reproducir la apariencia visual. También había que organizar el código para que las secciones pudieran mantenerse por separado, permitir que parte del contenido fuese administrable desde WordPress y preparar una entrega que otra persona pudiera instalar y comprobar mediante los archivos de demostración incluidos.

Figma → WordPress Home administrable Componentes reutilizables Responsive
6 productos consulta personalizada de los últimos elementos del CPT productos
2 sliders hero editable con ACF y carrusel de reseñas construido con SwiperJS
CPT propio registro de Productos mediante un plugin separado del tema
Build Node compilación de CSS y JavaScript con PostCSS, Tailwind y esbuild

Problema / reto

Convertir un diseño estático en una experiencia WordPress editable y mantenible

El reto consistía en pasar de un diseño proporcionado en Figma a una página real, sin limitarse a copiar medidas. Era necesario interpretar las secciones, identificar patrones reutilizables, definir cómo respondería la interfaz en distintos tamaños y decidir qué contenido debía quedar editable desde administración.

  • Reproducir con fidelidad la cabecera, el hero, los bloques informativos, los productos, las reseñas, los formularios y el pie de página.
  • Adaptar una composición principalmente de escritorio a tablet y móvil.
  • Evitar una plantilla principal extensa y difícil de mantener.
  • Hacer editable el slider principal sin modificar código.
  • Registrar los productos fuera del tema para separar contenido y presentación.
  • Reutilizar una misma tarjeta para todos los elementos del catálogo.
  • Conservar el comportamiento de sliders, navegación y menú móvil.
  • Preparar una instalación replicable con exports de WordPress y ACF.

Solución

Una home dividida en componentes y conectada con el administrador

La solución se organizó alrededor de cuatro decisiones principales:

  • Componentes PHP mediante get_template_part() para separar las secciones.
  • Tailwind CSS para construir el diseño responsive y mantener criterios visuales consistentes.
  • ACF Pro para convertir el slider principal en contenido editable.
  • Plugin propio para registrar el CPT Productos sin acoplarlo al tema.

Planteamiento

Separar presentación, comportamiento y contenido

El tema resuelve la presentación, los módulos JavaScript controlan la interacción y el plugin registra el modelo de contenido. Esta separación evita concentrar toda la lógica en front-page.php y facilita modificar una sección sin afectar al resto.

  • PHP renderiza la estructura y recupera los datos.
  • Tailwind y PostCSS generan los estilos finales.
  • SwiperJS gestiona los carruseles.
  • ACF permite editar slides desde la página Home.
  • El plugin mantiene disponible el CPT aunque cambie el tema.

Arquitectura

Una estructura pensada para que la página principal siga siendo legible

La página de inicio actúa como orquestador: obtiene los datos necesarios y carga cada sección mediante plantillas parciales. Los estilos fuente, los módulos JavaScript, el plugin propio y los archivos de demostración se mantienen en áreas diferenciadas.

Rodrigo-WordPress-VGS/
├── front-page.php                         → composición de la página de inicio
├── functions.php                          → configuración y carga de recursos
├── template-parts/
│   ├── slider.php                         → slider principal administrable
│   ├── benefits.php                       → bloque de ventajas
│   ├── products.php                       → consulta de los últimos productos
│   ├── product/card.php                   → tarjeta reutilizable
│   ├── quote-form.php                     → formulario de presupuesto
│   ├── about.php                          → sección corporativa
│   ├── reviews.php                        → slider de reseñas
│   └── contact-cta.php                    → llamada a la acción final
│
├── resources/js/
│   ├── app.js                             → arranque de interacciones
│   ├── swiper-home.js                     → configuración del hero
│   └── swiper-reviews.js                  → configuración de reseñas
│
├── tailwind/
│   └── components.css                     → componentes y utilidades agrupadas
│
├── plugins-propios/
│   └── rodri-plugin-vgs/                  → registro del CPT Productos
│
├── demo-content/
│   ├── acf-export-2026-07-19.json         → grupos de campos de ACF
│   └── wordpress_tw.WordPress.2026-07-19 (1).xml
│
├── package.json                           → scripts y dependencias
└── README.md                              → instalación y comprobación

El uso de get_template_part() permite pasar datos concretos a cada sección. Por ejemplo, el slider recibe el array de slides obtenido desde ACF, mientras que la tarjeta de producto se reutiliza dentro de la consulta sin duplicar su marcado.

Componentes del tema

Secciones independientes que forman una única experiencia visual

La home se divide en piezas con responsabilidades concretas:

  • Cabecera: barra superior, navegación principal y menú móvil adaptado al breakpoint del diseño.
  • Hero slider: slides editables, overlays, llamadas a la acción, navegación y paginación.
  • Beneficios: cuadrícula responsive con iconos, títulos y separadores.
  • Productos: consulta de los seis elementos más recientes y tarjeta común.
  • Presupuesto: bloque de formulario integrado visualmente con el resto de la página.
  • Sobre la empresa: composición de texto e imagen adaptada a resoluciones menores.
  • Reseñas: carrusel con uno, dos o tres elementos según el ancho disponible.
  • CTA y footer: cierre de la página, información de contacto y enlaces.

Contenido administrable

Slider principal gestionado mediante ACF Pro

La página Home contiene un grupo de campos repetible para crear y editar slides desde WordPress. Cada elemento incluye los datos necesarios para construir el contenido sin tocar la plantilla.

  • Pretítulo.
  • Título principal.
  • Texto del botón.
  • URL del botón.
  • Imagen del slide.

Modelo de contenido

Productos registrados desde un plugin propio

El CPT Productos se registra fuera del tema para que el contenido no dependa de la presentación activa. Cada producto admite título, descripción, imagen destacada y enlace individual.

  • Consulta personalizada de los últimos seis productos.
  • Tarjeta ubicada en template-parts/product/card.php.
  • Marcado común para evitar duplicación.
  • Contenido visible desde el administrador de WordPress.

Frontend y compilación

Tailwind, JavaScript modular y recursos generados mediante Node.js

Los archivos fuente se procesan mediante scripts de npm. Tailwind y PostCSS generan los estilos del tema, mientras que esbuild agrupa y minimiza los módulos JavaScript utilizados por los sliders y el menú móvil.

  • npm run dev para compilar durante el desarrollo.
  • npm run watch para recompilar automáticamente al detectar cambios.
  • npm run build para preparar los archivos finales cuando esté disponible en el proyecto.
  • Salida CSS: theme/style.css y theme/style-editor.css.
  • Salida JavaScript: theme/js/script.min.js y theme/js/block-editor.min.js.
Importante: los archivos generados no deben editarse directamente porque vuelven a sobrescribirse al ejecutar la compilación.

Proceso

Del análisis de Figma a una entrega replicable

01

Análisis del diseño

Se identificaron las secciones, los patrones repetidos, las tipografías, los colores, los espaciados y los cambios necesarios entre escritorio, tablet y móvil.

02

Definición de componentes

Antes de maquetar toda la página, se decidió qué bloques debían convertirse en plantillas reutilizables y qué datos recibiría cada uno.

03

Maquetación responsive

Se construyeron la cabecera, el hero, las cuadrículas, las tarjetas, los formularios y el footer utilizando Tailwind CSS y ajustes específicos para los breakpoints del diseño.

04

Contenido dinámico

El slider se conectó con ACF y el catálogo con un CPT propio. La home recupera los datos y los envía a las plantillas correspondientes.

05

Interacciones

SwiperJS se configuró para el slider principal y las reseñas, mientras que JavaScript controla también la apertura y el cierre del menú móvil.

06

Entrega y comprobación

Se prepararon el repositorio, el README, los exports de WordPress y ACF, los comandos de compilación y una demostración visual del comportamiento responsive.

Fortalezas

Qué demuestra este proyecto

  • Capacidad para interpretar un diseño y convertirlo en una interfaz funcional.
  • Conocimiento del sistema de plantillas de WordPress.
  • Creación de componentes reutilizables con get_template_part().
  • Integración de ACF y contenido personalizado.
  • Desarrollo responsive con Tailwind CSS.
  • Integración de librerías JavaScript sin perder control sobre la estructura.
  • Preparación de una entrega documentada y replicable.

Mejoras futuras

Evolución natural del tema

  • Añadir pruebas visuales automatizadas para los breakpoints principales.
  • Incorporar validaciones más completas para los campos del slider.
  • Convertir más bloques en patrones o bloques nativos del editor.
  • Optimizar imágenes con formatos modernos y tamaños responsive.
  • Medir Core Web Vitals y aplicar mejoras de carga diferida.
  • Revisar accesibilidad de contraste, foco, navegación y etiquetas ARIA.

Reproducibilidad

Una entrega preparada para instalar, importar y verificar

El repositorio incluye la documentación y los archivos necesarios para reconstruir el proyecto en otro entorno. El orden de instalación evita que WordPress pierda la relación con el CPT o con los campos personalizados.

  1. Clonar el repositorio dentro de wp-content/themes/.
  2. Copiar el plugin de plugins-propios/ a wp-content/plugins/ y activarlo.
  3. Instalar y activar ACF Pro.
  4. Activar el tema theme.
  5. Ejecutar npm install y compilar los recursos.
  6. Importar el JSON de ACF y el XML de WordPress.
  7. Seleccionar la página Home como portada estática.
  8. Asignar el menú y regenerar los enlaces permanentes.
Orden importante: el plugin propio debe estar activo antes de importar el XML para que WordPress reconozca correctamente el Custom Post Type Productos.

Resultado

Una home de WordPress fiel al diseño, editable y organizada para seguir creciendo

El resultado es un tema personalizado que combina fidelidad visual con una estructura interna mantenible. La página reproduce las secciones principales del diseño, funciona en escritorio y móvil, permite editar el slider desde administración y presenta los productos mediante un modelo de contenido independiente.

Como pieza de portfolio, el proyecto demuestra que la maquetación no se trató como un conjunto de estilos aislados: hubo análisis previo, división en componentes, integración con WordPress, tratamiento de contenido dinámico, compilación de assets y preparación de una entrega reproducible.

Galería

Vistas principales del proyecto

Sustituye estas imágenes de muestra por capturas reales de la home, el catálogo de productos y el comportamiento responsive.

Contacto

¿Quieres ver más proyectos de WordPress y PrestaShop?

Puedo enseñarte más desarrollos de temas, plugins, módulos, integraciones, automatizaciones y maquetaciones realizadas a partir de Figma.