Table of Contents
Carta de la semana
Sección editorial principal del sitio. Cada semana se publica una "carta" + un conjunto de artículos asociados que la desarrollan.
Plugin
carta-semana-plugin.php (mu-plugin).
- Local:
wordpress/wp-content/mu-plugins/carta-semana-plugin.php - Container:
/var/www/html/wp-content/mu-plugins/carta-semana-plugin.php - Producción:
/web/wp-content/mu-plugins/carta-semana-plugin.php
Aviso histórico: este mu-plugin se vació en local en una sesión pasada (probablemente por un
docker recreateo restauración UpdraftPlus). Si vuelve a desaparecer/quedar vacío, restaurar desde producción. Si no, las categoríascartasemana/carta-semana-pasadamuestran el archivo de categoría en vez de redirigir al post de la semana.
Comportamiento
- Redirige
/carta-de-la-semana/→/category/cartasemana/. - Si la categoría
cartasemanatienecount == 1,template_redirectredirige a ese post directamente. - Lo mismo para
carta-semana-pasada.
Categorías relacionadas
| term_id | Slug | Uso |
|---|---|---|
| 6 | cartasemana |
La carta de esta semana (exactamente 1 post) |
| 22 | carta-semana-pasada |
La carta de la semana anterior (exactamente 1 post) |
| 21 | cartas-de-otras-semanas |
Archivo histórico de cartas anteriores |
Invariante: una carta vive en exactamente una de estas 3 categorías. Si una carta aparece en dos a la vez, [fea_carta_semana_hero] puede seguir pintando la correcta (ordena por fecha) pero el redirect de /category/.../ se rompe (requiere count==1).
Las cartas son la fuente de clasificación de los posts
Cada carta es un post HTML con secciones encabezadas (Evangelio, Artículos, Eucaristía, Multimedia, EFFA…). Los links bajo cada encabezado definen la cat de los posts enlazados:
- Sección "Evangelio y comentarios al Evangelio" → cat
1647 comentarios-al-evangelio - Sección "Artículos seleccionados para la semana" → cat
1650 articulos - Sección "Material multimedia" → cat
1649 multimedia - Sección "Para unas eucaristías más participativas" → cat
1648 eucaristia - Sección "Escuela EFFA" → cats EFFA
Las cats WP 1645–1652 NO existen en Joomla y NO son inventos del importador FG. Son derivadas del análisis de las ~740 cartas históricas. Detalle en Categorías y términos.
Mecanismo runtime: mu-plugin fea-carta-portada.php que parsea la carta actual y alimenta los shortcodes de portada — ver #38 y Portada y shortcodes.
Script de regeneración del CSV de clasificación: scripts/regenerar_clasificacion_csv.py — ver Scripts de migración y #42.
Procedimiento semanal manual (proceso editorial)
Tras la decisión del #38 en 2026-05-25, el cambio semanal no se automatiza — se hace a mano con esta receta. Limpieza histórica de duplicados ya aplicada.
Cuando se publica una carta nueva, hay que mover las anteriores. Pasos en WP Admin (en este orden):
- Publicar la nueva carta en categoría
cartasemana(cat 6) y solo en esa categoría. - Mover la carta saliente que estaba en
cartasemana:- Quitar de
cartasemana(cat 6) - Añadir a
carta-semana-pasada(cat 22)
- Quitar de
- Mover la carta saliente que estaba en
carta-semana-pasada:- Quitar de
carta-semana-pasada(cat 22) - Añadir a
cartas-de-otras-semanas(cat 21)
- Quitar de
Tras esto, en cada categoría debe quedar el conteo esperado (1, 1, N+1). Verificar con:
SELECT t.slug, tt.count FROM wp_term_taxonomy tt
JOIN wp_terms t USING (term_id)
WHERE tt.term_id IN (6, 22, 21) AND tt.taxonomy='category';
Si en algún momento cat 6 o cat 22 tienen count > 1, el redirect deja de funcionar y la portada puede seguir siendo correcta pero las URLs /category/cartasemana/ y /category/carta-semana-pasada/ muestran archivo en vez del post — usar las SQL del #38 para limpiar.
Hero de portada (no requiere intervención)
[fea_carta_semana_hero] (fea-homepage.php:682) hace get_posts(cat=6, orderby=date, limit=1). Es dinámico: basta publicar la nueva carta en cat 6 y el hero se actualiza solo. Es el paso 1 del procedimiento — si los pasos 2-3 se olvidan, la portada sigue OK pero las URLs de archivo se rompen.
Relación carta ↔ artículos
Cada artículo de una semana lleva un meta _carta_id con el ID del post-carta al que pertenece. Esto permite renderizar [fea_articulos_semana] en la portada y los listados internos.
- Total de metas
_carta_iden producción: 3.528 (migrados 2026-03-15). - El meta se asigna por matching de fecha: artículos cuya
post_datecae en el rango de una carta se vinculan a esa carta. Lógica implementada en los scripts de delta (import_new_k2_items.py+fix_imported_k2_metas.py).
Bug conocido: 404 en idiomas
/category/cartasemana/ en EN/FR/IT/PT devuelve 404.
- Issue: #2 Fix carta de la semana 404 en idiomas EN/FR/IT/PT
- Causa raíz: combinación del bug WP_Tax_Query con Polylang. Detallado en Polylang multiidioma.
- Síntoma SQL:
get_posts(['lang'=>$lang, 'category__in'=>[$cat]])generaAND 0=1en la query, no devuelve nada y WP responde 404. - Fix esperado: no pasar
langexplícito aget_postscuando ya se está dentro del contexto de un idioma — Polylang filtra automáticamente.
Cartas históricas
Histórico de cartas en analisis-cartas/ del repo. Documentación de cartas para migrar (legacy) en el repo: CARTAS_PARA_MIGRAR.md.
Delta de mayo 2026
- Importadas 8 cartas nuevas (ew4r_content id > 9043, catid 27/40/41) → WP IDs 44083–44090 (
scripts/import_new_cartas.py). _carta_idreasignado para los 169 K2 items nuevos por matching de fecha.
Ver Scripts de migración.