1
Evangelios y comentarios
OpenClaw Agent edited this page 2026-05-20 09:11:28 -04:00

Evangelios y Comentarios

Sección con los 4 evangelios canónicos como posts; cada uno renderiza dinámicamente los comentarios asociados a sus versículos.

Completado el 2026-03-15 (último gran hito antes del delta de mayo).

Posts de los evangelios

IDs iguales en local y producción (sincronizados con UPDATE wp_posts.ID directo, ver Sincronización local → producción).

ID Título Slug Abrev
43906 Evangelio de Juan jn Jn
43907 Evangelio de Lucas lc Lc
43908 Evangelio de Mateo mt Mt
43909 Evangelio de Marcos mc Mc

Creados originalmente como page el 2026-03-14 y convertidos a post el 2026-03-15. La conversión fue necesaria para que aparecieran dentro de la categoría 28.

Categoría

EVANGELIOS Y COMENTARIOS (term_id=28, slug=evangelios-y-comentarios).

Shortcode [fea_citas_evangelio libro="Jn"]

Definido en fea-homepage.php (~línea 1406). Busca posts con meta _cita_evangelio que empiece por la abreviatura del libro (ej. "Jn ") en categoría 1647 ("Comentarios al evangelio").

Mapa libro → post_id (hardcodeado en el código)

$book_post_id = [
    'Mt' => 43908,
    'Mc' => 43909,
    'Lc' => 43907,
    'Jn' => 43906,
];

Metas migrados (2026-03-15)

Estos metas estaban completos en local pero faltaban en producción. Migrados con mysqldump + mysql directo (sin wp db query porque proc_open está desactivado en prod).

Meta key Registros Descripción
_cita_evangelio 4.290 Referencia bíblica del post (ej. "Jn 3, 16")
_carta_id 3.528 ID del post-carta al que pertenece el artículo

Comando que se ejecutó:

# Local
docker exec wordpress-mysql mysqldump -uwordpress_user -pwordpress_pass wordpress_db wp_postmeta \
  --where="meta_key IN ('_cita_evangelio','_carta_id')" \
  --no-create-info --complete-insert --skip-extended-insert > /tmp/metas_sin_id.sql
# (+ sed para eliminar meta_id y evitar conflictos)

# Prod (vía paramiko + scp)
mysql -h127.0.0.1 -umyfeadultaa5 -pKjyGU29h 278025353wordpress20260112013937 < /tmp/metas_evangelio.sql

Bug encontrado: wp-cli y categorías numéricas

wp post term set <ID> category 28   # ❌ asigna término con NOMBRE "28" (term_id=3299)

wp post term set ID category 28 interpreta 28 como nombre de término, no como term_id. Crea un término nuevo llamado "28" si no existe.

wp post term set <ID> category evangelios-y-comentarios   # ✅ usa slug

Regla: siempre usar slug en wp post term set.

Lección aprendida: IDs sincronizados local↔prod

  • NO usar get_page_by_path() ni queries dinámicas para resolver IDs de posts conocidos — propenso a errores en runtime y en migraciones.
  • NO usar IDs distintos en local y prod — fuerza lógica condicional en el código.
  • Cuando aparece divergencia, sincronizar los IDs con UPDATE directo (offset temporal +99000 para evitar conflictos). Procedimiento completo en Sincronización local → producción.