Portada multiidioma: enlace evangelio y artículos incorrectos en EN/FR/IT/PT #137

Closed
opened 2026-06-28 19:15:21 +00:00 by rafa · 0 comments
Owner

Detectado al revisar el multiidioma de prod (wp-nuevo) tras los updates de plugins (#129).

Bug 1 — Enlace "Gospel of the day / Évangile du jour" apunta al evangelio ES

En las portadas no-ES el enlace del evangelio del día apunta a https://wp-nuevo.feadulta.com/evangelio-de-cada-dia/ (la página ES) en lugar de a la traducción del idioma.

Causa raíz: mu-plugins/fea-homepage.php:1010

$pg = get_posts(['name'=>'evangelio-de-cada-dia','post_type'=>'post', ...]);

get_posts() usa suppress_filters=true por defecto, así que Polylang no filtra y siempre devuelve la página ES.

Fix propuesto: resolver la traducción del idioma actual, p.ej. obtener el ID ES y pll_get_post($id, fea_current_lang()) (igual que hace fea_front_page_id()), con fallback al ES.

Bug 2 — Artículos de portada incorrectos en EN/FR/IT/PT

La portada de los idiomas muestra artículos que NO son los de la carta semanal (faltan unos y aparecen otros distintos), mientras en ES sí son los de la carta.

Causa raíz: la carta SÍ está traducida, pero el parser de secciones mu-plugins/fea-carta-portada.php:73-80 (fea_extract_sections_from_html) busca las cabeceras de sección con regex solo en español (Artículos seleccionados para la semana, Evangelio y comentarios al Evangelio, etc.). En las cartas traducidas las cabeceras están en inglés/francés/etc. → el parser devuelve 0 secciones → los shortcodes (fea_articulos_semana, fea_evangelio, fea_eucaristia, fea_multimedia) caen al fallback "últimos por categoría en el idioma" → conjunto de artículos incorrecto.

Evidencia (prod, carta vigente "Entre todos"):

Idioma carta_id título secciones detectadas artículos
es 46956 Entre todos [evangelio, articulos, eucaristia] 7
en 46960 Among All [] 0
fr 46961 Entre tous [] 0

Fix propuesto: que fea_extract_sections_from_html reconozca las cabeceras en los 5 idiomas (patrones por idioma) — o mejor, parsear las secciones SIEMPRE sobre la carta ES y mapear cada link a su traducción Polylang (pll_get_post) para el idioma de la portada. La 2ª opción es más robusta (no depende de la redacción exacta de cada cabecera traducida).

Alcance

Afecta a todos los shortcodes de portada basados en secciones de la carta, en los 4 idiomas no-ES. ES funciona bien.

Relacionado: #129 (updates plugins, durante cuya verificación se detectó).

Detectado al revisar el multiidioma de prod (wp-nuevo) tras los updates de plugins (#129). ## Bug 1 — Enlace "Gospel of the day / Évangile du jour" apunta al evangelio ES En las portadas no-ES el enlace del evangelio del día apunta a `https://wp-nuevo.feadulta.com/evangelio-de-cada-dia/` (la página ES) en lugar de a la traducción del idioma. **Causa raíz:** `mu-plugins/fea-homepage.php:1010` ```php $pg = get_posts(['name'=>'evangelio-de-cada-dia','post_type'=>'post', ...]); ``` `get_posts()` usa `suppress_filters=true` por defecto, así que Polylang no filtra y siempre devuelve la página ES. **Fix propuesto:** resolver la traducción del idioma actual, p.ej. obtener el ID ES y `pll_get_post($id, fea_current_lang())` (igual que hace `fea_front_page_id()`), con fallback al ES. ## Bug 2 — Artículos de portada incorrectos en EN/FR/IT/PT La portada de los idiomas muestra artículos que NO son los de la carta semanal (faltan unos y aparecen otros distintos), mientras en ES sí son los de la carta. **Causa raíz:** la carta SÍ está traducida, pero el parser de secciones `mu-plugins/fea-carta-portada.php:73-80` (`fea_extract_sections_from_html`) busca las cabeceras de sección con **regex solo en español** (`Artículos seleccionados para la semana`, `Evangelio y comentarios al Evangelio`, etc.). En las cartas traducidas las cabeceras están en inglés/francés/etc. → el parser devuelve 0 secciones → los shortcodes (`fea_articulos_semana`, `fea_evangelio`, `fea_eucaristia`, `fea_multimedia`) caen al fallback "últimos por categoría en el idioma" → conjunto de artículos incorrecto. **Evidencia (prod, carta vigente "Entre todos"):** | Idioma | carta_id | título | secciones detectadas | artículos | |--------|----------|--------|----------------------|-----------| | es | 46956 | Entre todos | [evangelio, articulos, eucaristia] | 7 | | en | 46960 | Among All | [] | 0 | | fr | 46961 | Entre tous | [] | 0 | **Fix propuesto:** que `fea_extract_sections_from_html` reconozca las cabeceras en los 5 idiomas (patrones por idioma) — o mejor, parsear las secciones SIEMPRE sobre la carta ES y mapear cada link a su traducción Polylang (`pll_get_post`) para el idioma de la portada. La 2ª opción es más robusta (no depende de la redacción exacta de cada cabecera traducida). ## Alcance Afecta a todos los shortcodes de portada basados en secciones de la carta, en los 4 idiomas no-ES. ES funciona bien. Relacionado: #129 (updates plugins, durante cuya verificación se detectó).
rafa closed this issue 2026-06-28 19:15:21 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rafa/feadulta#137