[Multiidioma] Cartas en otros idiomas: «Semana pasada»→home y «Otras semanas»→500 (loop fea-homepage) + boletín #131

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

Labels: area:plugin, bug:important

Contexto

Tras la i18n del menú (#120), los enlaces de Cartas (This week / Last week / Other weeks) ya apuntan a la categoría traducida correcta en EN/FR/IT/PT. Pero los destinos están rotos (bugs preexistentes, no del remap del menú). «This week» funciona; los otros dos no.

Bug A — «Last week» redirige al HOME en vez de a la carta

  • La categoría «semana pasada» de cada idioma existe y tiene count=1 (la carta), pero la redirección count=1 de carta-semana-plugin.php (L22-43) no encuentra bien la carta traducida → acaba en /{lang}/ (home).
  • ES funciona. EN/FR/IT/PT van al home.
  • Causa probable (intuición de Rafa, a confirmar): las cartas traducidas no están correctamente asignadas/etiquetadas de idioma a la categoría «semana pasada» de su idioma → get_posts(['cat'=>term_id]) en contexto Polylang no devuelve la carta esperada.

Bug B — «Other weeks» da ERROR 500 (memoria agotada / loop)

  • /{en,fr,it,pt}/category/letters-from-other-weeks|lettres-des-autres-semaines|…/HTTP 500, Allowed memory size of 268435456 bytes exhausted en class-wpdb.php.
  • La categoría ES (cartas-de-otras-semanas, 742 posts) funciona; las traducidas (23 posts c/u) revientan con solo 23 posts ⇒ casi seguro un loop infinito.
  • Aislado por bisect: desactivando fea-homepage.php → HTTP 200. El loop está en algún hook de ese plugin al renderizar el archivo de categoría de cartas traducido. (Otras categorías traducidas no-carta, p.ej. multimedia, NO dan 500.)
  • Pendiente: localizar el hook concreto (probable filtro the_content/the_title o query recursiva que solo se dispara con Polylang en estas categorías).

Bug C — Lista de slugs desactualizada en carta-semana-plugin.php

  • El pre_get_posts (L46-54) que pone posts_per_page=50 usa slugs viejos: cartasemana-en, cartas-de-otras-semanas-en, etc.
  • Los slugs reales de las categorías traducidas son: letter-of-the-week / lettre-de-la-semaine / lettera-della-settimana / carta-da-semana (esta), carta-semana-pasada-{en,fr,it,pt} (pasada), letters-from-other-weeks / lettres-des-autres-semaines / lettere-delle-altre-settimane / cartas-de-outras-semanas (otras).
  • Actualizar la lista (o detectar por traducción Polylang del término en vez de hardcodear slugs).

Acción recomendada

  1. Auditar la categorización por idioma de las cartas (membership de cada carta traducida en las categorías esta/pasada/otras de su idioma) — confirma/descarta el Bug A.
  2. Cazar el loop en fea-homepage.php (Bug B) — subir memoria + backtrace en shutdown, o bisect de hooks dentro del plugin.
  3. Actualizar slugs del carta-semana-plugin (Bug C).

Estado verificado (2026-06-21)

  • This week: ✓ redirige a la carta del idioma (p.ej. /en/among-all/).
  • Last week: ✗ → home. Other weeks: ✗ → 500.
  • Menú + home ya remapean bien (desplegado a prod). Esto es solo sobre los DESTINOS de cartas.

Aparte (más grande, requiere decisión de producto) — Boletín sin traducir

  • «Para recibir la carta de novedades» (page 43892 / post 22735, slug alta) solo en español.
  • Pero la carta semanal es en español; traducir la página de alta solo tiene sentido si se decide hacer un mailing diferenciado por idioma (o al menos comunicar que el boletín es en ES).
  • Decisión aplazada hasta saber si hay tráfico internacional / si se quiere atraerlo. No traducir aún la página de alta sin definir esto.
**Labels:** area:plugin, bug:important ## Contexto Tras la i18n del menú (#120), los enlaces de **Cartas** (This week / Last week / Other weeks) ya apuntan a la categoría traducida correcta en EN/FR/IT/PT. **Pero los destinos están rotos** (bugs preexistentes, no del remap del menú). «This week» funciona; los otros dos no. ## Bug A — «Last week» redirige al HOME en vez de a la carta - La categoría «semana pasada» de cada idioma existe y tiene `count=1` (la carta), pero la redirección count=1 de `carta-semana-plugin.php` (L22-43) **no encuentra bien la carta traducida** → acaba en `/{lang}/` (home). - ES funciona. EN/FR/IT/PT van al home. - **Causa probable (intuición de Rafa, a confirmar):** las cartas traducidas no están correctamente asignadas/etiquetadas de idioma a la categoría «semana pasada» de su idioma → `get_posts(['cat'=>term_id])` en contexto Polylang no devuelve la carta esperada. ## Bug B — «Other weeks» da ERROR 500 (memoria agotada / loop) - `/{en,fr,it,pt}/category/letters-from-other-weeks|lettres-des-autres-semaines|…/` → **HTTP 500**, `Allowed memory size of 268435456 bytes exhausted` en `class-wpdb.php`. - La categoría ES (`cartas-de-otras-semanas`, 742 posts) funciona; las traducidas (23 posts c/u) **revientan con solo 23 posts** ⇒ casi seguro un **loop infinito**. - **Aislado por bisect:** desactivando **`fea-homepage.php`** → HTTP 200. El loop está en algún hook de ese plugin al renderizar el archivo de categoría de cartas **traducido**. (Otras categorías traducidas no-carta, p.ej. multimedia, NO dan 500.) - Pendiente: localizar el hook concreto (probable filtro `the_content`/`the_title` o query recursiva que solo se dispara con Polylang en estas categorías). ## Bug C — Lista de slugs desactualizada en `carta-semana-plugin.php` - El `pre_get_posts` (L46-54) que pone `posts_per_page=50` usa slugs viejos: `cartasemana-en`, `cartas-de-otras-semanas-en`, etc. - Los slugs reales de las categorías traducidas son: `letter-of-the-week` / `lettre-de-la-semaine` / `lettera-della-settimana` / `carta-da-semana` (esta), `carta-semana-pasada-{en,fr,it,pt}` (pasada), `letters-from-other-weeks` / `lettres-des-autres-semaines` / `lettere-delle-altre-settimane` / `cartas-de-outras-semanas` (otras). - Actualizar la lista (o detectar por traducción Polylang del término en vez de hardcodear slugs). ## Acción recomendada 1. **Auditar la categorización por idioma de las cartas** (membership de cada carta traducida en las categorías esta/pasada/otras de su idioma) — confirma/descarta el Bug A. 2. **Cazar el loop en `fea-homepage.php`** (Bug B) — subir memoria + backtrace en shutdown, o bisect de hooks dentro del plugin. 3. Actualizar slugs del `carta-semana-plugin` (Bug C). ## Estado verificado (2026-06-21) - This week: ✓ redirige a la carta del idioma (p.ej. `/en/among-all/`). - Last week: ✗ → home. Other weeks: ✗ → 500. - Menú + home ya remapean bien (desplegado a prod). Esto es solo sobre los DESTINOS de cartas. --- ## Aparte (más grande, requiere decisión de producto) — Boletín sin traducir - «Para recibir la carta de novedades» (page 43892 / post 22735, slug `alta`) **solo en español**. - **Pero** la carta semanal es en español; traducir la página de alta solo tiene sentido si se decide hacer un **mailing diferenciado por idioma** (o al menos comunicar que el boletín es en ES). - **Decisión aplazada** hasta saber si hay tráfico internacional / si se quiere atraerlo. No traducir aún la página de alta sin definir esto.
rafa closed this issue 2026-06-28 19:15:14 +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#131