3
Carta de la semana
rafa edited this page 2026-05-25 15:38:56 -04:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 recreate o restauración UpdraftPlus). Si vuelve a desaparecer/quedar vacío, restaurar desde producción. Si no, las categorías cartasemana / carta-semana-pasada muestran el archivo de categoría en vez de redirigir al post de la semana.

Comportamiento

  1. Redirige /carta-de-la-semana//category/cartasemana/.
  2. Si la categoría cartasemana tiene count == 1, template_redirect redirige a ese post directamente.
  3. 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).

Ver Categorías y términos.

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 16451652 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):

  1. Publicar la nueva carta en categoría cartasemana (cat 6) y solo en esa categoría.
  2. Mover la carta saliente que estaba en cartasemana:
    • Quitar de cartasemana (cat 6)
    • Añadir a carta-semana-pasada (cat 22)
  3. 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)

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_id en producción: 3.528 (migrados 2026-03-15).
  • El meta se asigna por matching de fecha: artículos cuya post_date cae 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]]) genera AND 0=1 en la query, no devuelve nada y WP responde 404.
  • Fix esperado: no pasar lang explícito a get_posts cuando 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 4408344090 (scripts/import_new_cartas.py).
  • _carta_id reasignado para los 169 K2 items nuevos por matching de fecha.

Ver Scripts de migración.