Sincronización JSON Local — Grupos de Campos Amigables con Git | Field Forge - Campos personalizados, diseñados para la velocidad
Descargar Iniciar sesión

Sincronización JSON Local — Grupos de Campos Amigables con Git

El problema que resuelve

Cuando editas un grupo de campos en el administrador de Field Forge, el cambio se guarda en la base de datos de WordPress. Genial — hasta que te das cuenta:

  • Tu entorno de desarrollo local tiene una versión del grupo de campos
  • El staging tiene una versión ligeramente diferente (porque alguien lo editó allí)
  • La producción tiene otra versión más (porque un editor de contenido añadió un campo directamente)
  • No tienes historial de quién cambió qué, o cuándo, o por qué

Sin control de versiones, los grupos de campos se desincronizan. Las migraciones de desarrollo a producción se vuelven propensas a errores. Los retrocesos son imposibles.

La sincronización JSON local resuelve todo esto al hacer que los grupos de campos sean basados en archivos además de basados en la base de datos. La base de datos es la fuente de verdad para la edición en vivo; los archivos JSON son la fuente de verdad para el control de versiones y el despliegue.


Cómo funciona

Paso 1: Habilitar la sincronización JSON local

En Field Forge → Configuración → JSON Local, habilita la función. Especifica un directorio en tu tema activo donde se deben guardar los archivos JSON (por defecto: wp-content/themes/tu-tema/fieldforge-json/).

Paso 2: Los grupos de campos se guardan automáticamente como JSON

Cada vez que guardas un grupo de campos en el administrador de Field Forge, el plugin también escribe un archivo JSON en el directorio configurado. El nombre del archivo es group_{id}_{slug}.json — por ejemplo, group_1_hero-section.json.

Contenido del archivo:

json { "key": "hero-section", "title": "Sección Hero", "fields": [ { "key": "field_hero_title", "label": "Título Hero", "name": "hero_title", "type": "text", "required": true, "max_length": 120 }, { "key": "field_hero_subtitle", "label": "Subtítulo Hero", "name": "hero_subtitle", "type": "textarea", "rows": 2 }, { "key": "field_hero_image", "label": "Imagen de Fondo", "name": "background_image", "type": "image", "return_format": "array" } ], "location": [ [ { "param": "post_template", "operator": "==", "value": "template-landing.php" } ] ], "position": "normal", "style": "default" }

Paso 3: Hacer commit en git

Agrega el directorio fieldforge-json/ al repositorio git de tu tema. Haz commit de los cambios en el grupo de campos como cualquier otro cambio de código.

bash git add fieldforge-json/group_1_hero-section.json git commit -m "Añadir campo de imagen de fondo a la Sección Hero" git push

Cada cambio en el grupo de campos ahora tiene un autor, una marca de tiempo y un mensaje de commit. Puedes diferenciar cambios a lo largo del tiempo, revertir a versiones anteriores y ver quién añadió qué campo.

Paso 4: Desplegar archivos JSON a otros entornos

Cuando despliegas tu tema a staging o producción, los archivos JSON vienen con él. Field Forge en el entorno de destino detecta los nuevos archivos JSON o los archivos cambiados y los importa automáticamente.


Sincronización bidireccional

La sincronización JSON local es bidireccional — puedes editar grupos de campos a través de la interfaz de usuario del administrador (que actualiza tanto la base de datos como el archivo JSON) O editando archivos JSON directamente (que actualiza la base de datos la próxima vez que se carga Field Forge).

Flujo de trabajo centrado en la UI

Edita grupos de campos visualmente en el administrador de Field Forge. Los archivos JSON se actualizan automáticamente al guardar. Haz commit de los archivos JSON en git. Despliega a otros entornos.

Flujo de trabajo centrado en el código

Edita archivos JSON directamente en tu IDE (VS Code, PhpStorm, etc.). En la próxima carga de página, Field Forge detecta los cambios en JSON y actualiza la base de datos. Haz commit de los archivos JSON en git.

Ambos flujos de trabajo son compatibles. Los equipos suelen usar la UI para nuevos grupos de campos y la edición de código para pequeños ajustes.


Detección de cambios

Field Forge compara el hash del contenido de cada archivo JSON con la versión de la base de datos al cargar. Si difieren, Field Forge:

  1. Muestra un aviso en el administrador: “El grupo de campos ‘Sección Hero’ está desincronizado con el JSON local”
  2. Ofrece opciones: “Sincronizar de la base de datos a JSON” o “Sincronizar de JSON a la base de datos”
  3. Haces clic en la dirección que deseas y Field Forge actualiza en consecuencia

Esto previene la deriva silenciosa. Si alguien edita un grupo de campos en producción directamente (eludiendo el flujo de trabajo de dev → staging → prod), verás un aviso la próxima vez que despliegues.


Seguridad

La sincronización JSON local respeta las mejores prácticas de seguridad de WordPress:

  • .htaccess protección — el directorio JSON está protegido de acceso HTTP directo por defecto (un archivo .htaccess lo bloquea)
  • Permisos de archivo — los archivos JSON se crean con permisos de archivo estándar de WordPress (644)
  • Validación de ruta — el plugin solo lee archivos JSON del directorio configurado (sin recorrido de ruta)

Soporte para temas padre e hijo

Field Forge verifica múltiples rutas de carga para archivos JSON:

  1. Directorio fieldforge-json/ del tema activo
  2. Directorio fieldforge-json/ del tema padre (si el tema hijo está activo)
  3. Cualquier ruta personalizada registrada a través del filtro fieldforge/local_json/load_paths

Esto significa que un tema padre puede enviar grupos de campos a través de JSON, y los temas hijos pueden anular o extenderlos.


Consideraciones para multi-sitio

En una red multisite de WordPress, cada sitio tiene su propio directorio fieldforge-json/. Los administradores de la red pueden elegir entre:

  • Archivos JSON por sitio — cada sitio tiene sus propios grupos de campos
  • Archivos JSON compartidos — los grupos de campos definidos en el tema padre se aplican a todos los sitios que lo usan
  • Híbrido — algunos grupos de campos compartidos, algunos por sitio

Ganchos de filtro para personalización

Ruta de guardado personalizada

php add_filter('fieldforge/local_json/save_path', function($path) { return WP_CONTENT_DIR . '/custom-fieldforge-json'; });

Rutas de carga personalizadas (por ejemplo, desde un plugin)

php add_filter('fieldforge/local_json/load_paths', function($paths) { $paths[] = WP_PLUGIN_DIR . '/my-plugin/fields'; return $paths; });


Comparación con el JSON Local de ACF

ACF introdujo una función similar de JSON local hace años. La implementación de Field Forge es en gran medida compatible — los archivos JSON de grupos de campos de ACF pueden importarse en el directorio JSON de Field Forge con ajustes menores de formato (Field Forge añade algunos campos de metadatos que ACF no rastrea).

Si estás migrando desde ACF con archivos JSON existentes, la herramienta de migración de Field Forge los lee durante la importación y los traduce automáticamente al formato de Field Forge.


Casos de uso

Flujo de trabajo de desarrollo de agencia

Múltiples desarrolladores trabajando en sitios de clientes. Grupos de campos definidos en código, comprometidos en git, desplegados a través de CI/CD. Nuevos miembros del equipo clonan el repositorio y tienen todos los grupos de campos de inmediato.

Despliegues escalonados

Pipeline de dev → staging → producción donde los cambios en los grupos de campos viajan con las actualizaciones del tema. Sin pasos manuales de “oh espera, necesito exportar e importar los grupos de campos”.

Distribución de temas

Crea un tema de WordPress que se envíe con grupos de campos predefinidos. Los usuarios instalan el tema, Field Forge detecta los archivos JSON, los grupos de campos aparecen automáticamente.

Paquete de plugins

Un plugin personalizado que requiere grupos de campos específicos. Envía los archivos JSON dentro del plugin, registra una ruta de carga a través de un filtro, los grupos de campos se activan cuando se activa el plugin.


¿Listo para controlar la versión de tus grupos de campos?

Obtén Field Forge — desde $35/año →

La sincronización JSON local está incluida en cada plan de pago.

Asistente de IA de Forge En línea

¡Hola! Soy el asistente de IA de Field Forge. Pregúntame lo que quieras sobre el plugin — configuración, funciones, resolución de problemas o desarrollo.

Ahora mismo
Con la tecnología de Forge AI · Explorar documentación