5.7 KiB
5.7 KiB
Contexto del Proyecto: CNT Sindikatua
¿Qué es?
Tema de WordPress para el sitio web del sindicato CNT (Confederación Nacional del Trabajo) del País Vasco. Basado en el Timber Starter Theme con Twig como motor de plantillas.
Stack Tecnológico
| Componente | Tecnología |
|---|---|
| CMS | WordPress |
| Tema base | Timber Starter Theme (v2) |
| Motor de plantillas | Twig (PHP) |
| Frontend | Bootstrap 5.3, Bootstrap Icons |
| Fuente | Yaro (custom) |
| PHP | Composer, PSR-4 autoloading |
| Post Types | post (noticias, campaña, conflictos laborales), opinion, videos, documento |
| Plugins clave | Polylang (multilenguaje ES/EU), ACF (Advanced Custom Fields), Contact Form 7, Routes |
Idiomas
Soporte bilingüe: Español (/es) y Euskera (/eu) mediante Polylang.
Estructura del tema
cnt-sindikatua/
├── assets/ # CSS, JS, fuentes, imágenes
│ ├── fonts/yaro-font-family/
│ ├── scripts/site.js
│ └── styles/
├── src/ # Clases PHP (autoload PSR-4)
│ ├── StarterSite.php -> Clase principal del tema
│ ├── Comments.php -> Desactiva comentarios globalmente
│ └── SMTP.php -> Configuración de correo SMTP
├── views/ # Plantillas Twig
│ ├── layouts/base.twig -> Layout base (HTML, header, footer)
│ ├── partials/ -> Componentes reutilizables
│ └── templates/ -> Plantillas por página/taxonomía
├── functions.php -> Punto de entrada, inicializa todo
├── style.css -> Estilos + metadatos del tema
└── template-portada.php -> Template especial para portada
Funcionalidades principales
1. Portada dinámica
template-portada.php con contexto que incluye:
- Últimas noticias (
getLastsPostsNews) - Último artículo de opinión (
getLastPostOpinion) - Último post de campaña (
getLastPostCampana) - Último post de conflictos laborales (
getLastPostConflicts) - Botones de enlaces con imagen (
getBotonesEnlaces) - Slider de videos (
getVideosSlider)
2. Archivos personalizados con rutas (Routes)
Rutas definidas en functions.php con upstatement/routes:
| Ruta ES | Ruta EU | Archivo PHP |
|---|---|---|
/es/noticias |
/eu/berriak |
archive-noticias.php |
/es/noticias/conflictos-laborales |
/eu/berriak/lan-gatazkak |
archive-conflictos-laborales.php |
/es/documentos |
/eu/dokumentuak |
archive-documentos.php |
Todas con soporte de paginación (/page/:paged).
3. Páginas especiales
Cada una con su template Twig correspondiente:
- Acerca de CNT / CNT-ri buruz
- Afiliación / Afiliazioa
- Contactos / Kontaktua (con formulario CF7)
- Servicios / Zerbitzuak
- Industria
- Enlaces / Loturak
- Noticias / Berriak
- Opinión / Iritzia
- Videos / Bideoak
- Documentos / Dokumentuak
- Aviso Legal, Política de Privacidad, Política de Cookies
4. Videos
- Custom post type
videos - Reproductor modal con iframe (YouTube/Vimeo)
- Slider en portada
- Embed generado automáticamente con
generar_embed_universal() - Script en
site.jsmaneja apertura/cierre del modal (autoplay al abrir, stop al cerrar)
5. Opinión
- Custom post type
opinion - Archive propio con paginación
- Sección destacada en portada
6. SMTP
- Clase
SMTP.phpque configuraphpmailer_init - Configuración desde opciones de ACF (host, puerto, seguridad, credenciales, remitente)
- Almacenado como opciones de WordPress (
options_smtp_*)
7. Comentarios
- Totalmente desactivados en todo el sitio mediante
Comments.php - Oculta menú de comentarios en admin, redirige acceso directo, elimina soporte en post types
8. Redes sociales
- Configurables desde ACF (opciones del tema)
- Hasta 4 iconos con imagen y URL
- Estilo SVG blanco en footer con efecto hover
9. Búsqueda
- Excluye páginas marcadas con ACF
exclude_from_search - Filtro en
pre_get_posts
10. Header y Footer
- Header: Top bar (idiomas), logos configurables (ACF), menú principal con dropdown, menú hamburguesa (offcanvas)
- Footer: Logos, textos configurables, últimas noticias, último artículo de opinión, redes sociales, enlaces, listado de sedes
11. Paginación
- Estilos personalizados con las clases CSS del tema
- Varios partials:
pagination.twig,pagination-custom.twig,pagination-custom-pages.twig
Identidad visual
- Color principal: Rojo CNT (
--rojo-cnt: #dc2d30) - Colores secundarios:
--rojo-cnt-dark: #9d1b1d,--rojo-cnt-light: #d6453f - Tipografía titular: Yaro (YaroSt-Black) para headings y títulos especiales
- Soporte SVG en subidas de medios mediante filtro
upload_mimes
Scripts JS
site.js: Maneja el modal de videos (autoplay al abrir, stop al cerrar)- Bootstrap JS: Menús, offcanvas, modals
- Dependencias cargadas desde
vendor/via Composer
Migración
- Proyecto migrado desde Joomla a WordPress
MIGRATION.mdcontiene instrucciones para limpieza de BBDD (tablas con prefijos legacy:d8yd3_,bak_,gdkw3_,qwe9g_)- Categorías limpiadas durante migración: Blog, News, Review, tutorial, updates, Joomla!, Uncategorised, Helbideak, Service
- Categorías mantenidas: Berriak/noticias, Albisteak/noticias, Lan gatazkak/conflictos laborales, Industria, Acerca de CNT
Notas de desarrollo
- Versión de assets cacheada con
time()para evitar caché del navegador en desarrollo - Antiguo intento de reescritura de reglas para search pagination comentado en
StarterSite.php - Función
pll_current_language()para integración ACF + Polylang - Hook en CF7 para añadir título de página como campo oculto en formularios