fea-audio-player.php: el <audio> lleva data-post-id/data-voice; listener
en wp_footer dispara gtag('event','audio_play', {post_id, voice}) en el
primer play (no en cada resume).
fea-share.php: se sube también al repo (nunca se había comiteado). El
botón de Facebook lleva data-fea-share-track="facebook" + listener que
dispara gtag('event','share_click', {method, post_id}).
Ambos reusan el dataLayer/gtag que ya inicializa fea-analytics.php, sin
añadir JS de terceros. Verificado en local con Playwright (evento se
dispara correctamente en ambos casos).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replica el «Buscador avanzado» del Joomla viejo sin servicios externos:
- fea-search-fulltext.php: motor MySQL FULLTEXT (MATCH AGAINST, Boolean Mode,
orden por relevancia); comprueba que existe el índice fea_ft y degrada al
buscador nativo si no, sin romper.
- fea-search-advanced.php: formulario con filtros por autor, categoría
(lista curada de secciones), cita bíblica (meta _cita_evangelio por prefijo)
y rango de fechas; pre_get_posts, chips de filtros, byline en tarjetas,
i18n es/en/fr/it/pt. Excluye pseudo-autores «Testamento».
- create_buscar_page.php: crea la página /buscar + traducciones (idempotente).
- tools/e2e: suite Playwright de verificación.
Desplegado y verificado en prod (índice fea_ft + página /buscar + traducciones).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- fea-search.php: barra de búsqueda visible en móvil (donde el menú
colapsa y oculta el buscador del menú); multiidioma por Polylang.
- set_search_template.php: template FSE 'search' con resultados en
rejilla de tarjetas (reutiliza el layout de archive #63) en vez del
patrón del tema que los mostraba 'todos seguidos'.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
El reproductor se inyecta en el grupo flex del autor (wp-block-group FSE).
El flex-wrap apuntaba a .fea-byline (solo existe en Astra), por lo que en
móvil vertical el <audio> se comprimía y no mostraba controles. Se dirige
el wrap también al grupo FSE del byline.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fea_avatar_url: para posts no-ES resuelve el título del original ES (Polylang),
donde sí se reconoce el libro/evangelista. Así Matteo/Geremia/Romani heredan el
mismo icono que Mateo(ángel)/Jeremías/Romanos(biblia) en vez de identicon random.
También incluye el guard de Multimedia solo-ES (#135#1).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bug 2: fea_carta_section_posts parsea SIEMPRE la carta ES (el parser solo
reconoce cabeceras en español) y mapea cada artículo a su traducción
Polylang del idioma de la portada. Antes EN/FR/IT/PT caían al fallback
'últimos por categoría' y mostraban artículos incorrectos.
Bug 1: el enlace 'evangelio del día' resuelve la traducción del idioma
actual con pll_get_post (get_posts usa suppress_filters=true y devolvía
siempre la página ES).
Desplegado y verificado en prod (wp-nuevo) 2026-06-22.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- fea-carta-portada.php (nuevo, 1.0): parser de la carta semanal.
Extrae secciones (Evangelio, Artículos, Eucaristía, Multimedia, EFFA)
por encabezados y resuelve los href (WP slug o K2 legacy id) a
wp_posts.ID. Cache en transient 15 min, invalidación en save_post.
Cierra issue #38.
- fea-homepage.php: 4 shortcodes reescritos para usar
fea_carta_section_posts() como fuente primaria, manteniendo el
fallback existente (ACF + últimos por categoría).
Afecta: [fea_articulos_semana], [fea_evangelio], [fea_eucaristia],
[fea_multimedia]. El hero y noticia_centro sin cambios.
- fea-slider-sync.php (nuevo, 1.0): sincroniza Smart Slider 3 id 2
con uploads/home/. Editor sube/borra imágenes en esa carpeta y el
slider se actualiza automáticamente al primer pageview (modelo
paridad con Joomla mod_ariimageslider). Cierra issue #43.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
El footer template (ID 42370) ya tenía las 3 columnas de banners. El bloque
central usaba publi_2-1.gif (antiguo placeholder). Se reemplaza por el
shortcode [fea_noticia_centro] que muestra noticias_2025.jpg + título del
último artículo de Noticias de alcance de forma dinámica.
Se elimina el shortcode [fea_prefooter] (causaba duplicación al añadirse
sobre el footer template preexistente).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- fea-homepage.php: nuevo shortcode [fea_prefooter] — 3 columnas (Ediciones |
Noticias de alcance | Publicidad) sobre el footer. Imagen noticias_2025.jpg
apunta a wp-content/uploads/recursos/ (fix ruta Joomla rota). Columna central
y vídeo de la semana son dinámicos (último post de las categorías respectivas).
- scripts/import_new_k2_items.py: importa 169 K2 items nuevos (id > 17873)
- scripts/fix_imported_k2_metas.py: asigna metas/cats/Polylang a esos 169 posts
- scripts/import_new_cartas.py: importa 8 cartas nuevas (ew4r_content id > 9043,
catid 27/40/41) y asigna _carta_id a los artículos K2 por fecha
- scripts/import_new_content.py: importa 58 ítems ew4r_content no-carta
(multimedia, noticias, tablón, etc.) con mapping catid→WP term
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Ocultar .n2-ss-slide--focus (nombres de fichero SS3 visibles)
- Ocultar .wp-block-post-title en todas las portadas (antes solo FR/IT/PT/EN)
- Aumentar separación entre secciones: 3rem→4.5rem + padding-top
- Rediseñar .fea-section-title: más grande (0.72→0.85rem), más oscuro,
borde izquierdo carmesí para jerarquía visual
Closes#10#11#15#16
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Incluye: mu-plugins custom (fea-homepage, carta-semana), scripts de
migración/traducción/deploy, documentación de auditoría, análisis de
cartas y HTML de evangelios exportados desde Joomla.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>