<- Todos los artículos

SOP: mostrar campos ACF anidados en Elementor cuando las etiquetas dinámicas fallan

El diagnóstico para un campo que existe en WordPress pero no aparece en el frontend: comprobar datos, identificar límites de la integración y reutilizar una capa de presentación segura.


El problema

Una sección creada con campos personalizados mostraba contenido dinámico hasta que se intentó leer un subcampo dentro de un grupo. El dato seguía guardado en WordPress, pero Elementor devolvía un aviso de que no encontraba el subcampo. Cambiar el nombre a ciegas no resolvía nada porque el problema era la estructura del dato, no el contenido.

La causa raíz

Los campos de ACF pueden vivir dentro de grupos o repetidores. Algunas interfaces de etiquetas dinámicas no pueden resolver esos valores anidados usando únicamente el nombre del subcampo. Además, si la lógica de presentación se había añadido directamente al tema padre, una actualización podía haberla reemplazado aunque los datos y la configuración de ACF siguieran intactos.

La resolución

Primero confirmé que el campo principal y el subcampo tenían datos. Después revisé si ya existía un shortcode o una función auxiliar que leyera el grupo completo y devolviera el valor necesario. Reutilizar esa capa evitó duplicar lógica y permitió colocar un shortcode explícito en el bloque de Elementor.

Cuando esa ayuda no existe, la solución es una función pequeña que obtiene el grupo, valida que el subcampo esté presente y devuelve HTML escapado. Esa función debe vivir en un child theme o en un plugin propio, no en archivos del tema que puedan sobrescribirse al actualizar.

Cómo validarlo

  1. Guarda el valor de prueba en el campo y comprueba que está presente en el administrador.
  2. Inserta la llamada en una página de prueba antes de tocar la sección pública.
  3. Verifica el frontend con caché desactivada o vaciada.
  4. Prueba el caso sin valor para confirmar que no imprime avisos ni markup roto.
  5. Documenta el nombre del grupo, el subcampo y la llamada que lo renderiza.

Cómo aplicarlo a problemas parecidos

Cuando un campo dinámico no aparece, divide la investigación: ¿el dato existe?, ¿el constructor puede leer esa estructura?, ¿hay una función previa que ya resuelva el caso?, ¿la caché muestra una versión antigua? Esta secuencia evita reescribir PHP cuando el problema es de configuración y evita culpar al constructor cuando la lógica desapareció tras una actualización.

La prevención es simple: documentar los shortcodes propios y mantener la lógica de presentación fuera del tema padre. Así, los campos y el código que los muestra evolucionan como un sistema, no como dependencias escondidas.

// ¿algo parecido te está frenando?

Resolvámoslo juntos

Hablemos Más artículos