Lokale JSON-Synchronisierung — Git-freundliche Feldgruppen | Field Forge - Benutzerdefinierte Felder, gebaut für Geschwindigkeit
Herunterladen Anmelden

Lokale JSON-Synchronisierung — Git-freundliche Feldgruppen

Das Problem, das dies löst

Wenn Sie eine Feldgruppe im Admin-Bereich von Field Forge bearbeiten, wird die Änderung in der WordPress-Datenbank gespeichert. Großartig — bis Sie feststellen:

  • Ihre lokale Entwicklungsumgebung hat eine Version der Feldgruppe
  • Die Staging-Umgebung hat eine leicht andere Version (weil jemand sie dort bearbeitet hat)
  • Die Produktionsumgebung hat eine weitere Version (weil ein Content-Editor ein Feld direkt hinzugefügt hat)
  • Sie haben keine Historie darüber, wer was, wann und warum geändert hat

Ohne Versionskontrolle driftet die Feldgruppe aus der Synchronisation. Migrationen von der Entwicklung zur Produktion werden fehleranfällig. Rollbacks sind unmöglich.

Die lokale JSON-Synchronisierung löst all dies, indem sie Feldgruppen dateibasiert neben der datenbankbasierten Speicherung ermöglicht. Die Datenbank ist die Quelle der Wahrheit für Live-Bearbeitungen; die JSON-Dateien sind die Quelle der Wahrheit für Versionskontrolle und Bereitstellung.


So funktioniert es

Schritt 1: Lokale JSON-Synchronisierung aktivieren

Gehen Sie zu Field Forge → Einstellungen → Lokale JSON und aktivieren Sie die Funktion. Geben Sie ein Verzeichnis in Ihrem aktiven Theme an, in dem JSON-Dateien gespeichert werden sollen (Standard: wp-content/themes/your-theme/fieldforge-json/).

Schritt 2: Feldgruppen werden automatisch als JSON gespeichert

Jedes Mal, wenn Sie eine Feldgruppe im Admin-Bereich von Field Forge speichern, schreibt das Plugin auch eine JSON-Datei in das konfigurierte Verzeichnis. Der Dateiname lautet group_{id}_{slug}.json — z.B. group_1_hero-section.json.

Dateiinhalt:

json { "key": "hero-section", "title": "Hero Section", "fields": [ { "key": "field_hero_title", "label": "Hero Title", "name": "hero_title", "type": "text", "required": true, "max_length": 120 }, { "key": "field_hero_subtitle", "label": "Hero Subtitle", "name": "hero_subtitle", "type": "textarea", "rows": 2 }, { "key": "field_hero_image", "label": "Background Image", "name": "background_image", "type": "image", "return_format": "array" } ], "location": [ [ { "param": "post_template", "operator": "==", "value": "template-landing.php" } ] ], "position": "normal", "style": "default" }

Schritt 3: In Git committen

Fügen Sie das fieldforge-json/ Verzeichnis zu Ihrem Git-Repo des Themes hinzu. Committen Sie Änderungen an Feldgruppen wie jede andere Codeänderung.

bash git add fieldforge-json/group_1_hero-section.json git commit -m "Hintergrundbildfeld zur Hero Section hinzufügen" git push

Jede Änderung an der Feldgruppe hat jetzt einen Autor, einen Zeitstempel und eine Commit-Nachricht. Sie können Änderungen im Laufe der Zeit vergleichen, zu vorherigen Versionen zurückkehren und sehen, wer welches Feld hinzugefügt hat.

Schritt 4: JSON-Dateien in andere Umgebungen bereitstellen

Wenn Sie Ihr Theme in die Staging- oder Produktionsumgebung bereitstellen, werden die JSON-Dateien mitgeliefert. Field Forge in der Zielumgebung erkennt die neuen oder geänderten JSON-Dateien und importiert sie automatisch.


Bidirektionale Synchronisierung

Die lokale JSON-Synchronisierung ist bidirektional — Sie können Feldgruppen über die Admin-Oberfläche bearbeiten (die sowohl die Datenbank als auch die JSON-Datei aktualisiert) ODER indem Sie JSON-Dateien direkt bearbeiten (was die Datenbank beim nächsten Laden von Field Forge aktualisiert).

UI-first Workflow

Bearbeiten Sie Feldgruppen visuell im Admin-Bereich von Field Forge. JSON-Dateien werden beim Speichern automatisch aktualisiert. Committen Sie JSON-Dateien in Git. Stellen Sie sie in andere Umgebungen bereit.

Code-first Workflow

Bearbeiten Sie JSON-Dateien direkt in Ihrer IDE (VS Code, PhpStorm usw.). Bei der nächsten Seitenladung erkennt Field Forge die JSON-Änderungen und aktualisiert die Datenbank. Committen Sie JSON-Dateien in Git.

Beide Workflows werden unterstützt. Teams verwenden typischerweise die UI für neue Feldgruppen und die Codebearbeitung für kleine Anpassungen.


Änderungserkennung

Field Forge vergleicht den Inhalts-Hash jeder JSON-Datei mit der Datenbankversion beim Laden. Wenn sie unterschiedlich sind, zeigt Field Forge:

  1. Eine Admin-Benachrichtigung an: „Feldgruppe ‘Hero Section’ ist nicht synchron mit lokalem JSON“
  2. Bietet Optionen an: „Von der Datenbank zu JSON synchronisieren“ oder „Von JSON zu Datenbank synchronisieren“
  3. Sie klicken in die gewünschte Richtung und Field Forge aktualisiert entsprechend

Dies verhindert stilles Driften. Wenn jemand eine Feldgruppe direkt in der Produktionsumgebung bearbeitet (ohne den Entwicklungs- → Staging- → Produktions-Workflow), sehen Sie eine Benachrichtigung beim nächsten Bereitstellen.


Sicherheit

Die lokale JSON-Synchronisierung respektiert die besten Sicherheitspraktiken von WordPress:

  • .htaccess-Schutz — das JSON-Verzeichnis ist standardmäßig vor direktem HTTP-Zugriff geschützt (eine .htaccess-Datei blockiert dies)
  • Dateiberechtigungen — JSON-Dateien werden mit den standardmäßigen WordPress-Dateiberechtigungen (644) erstellt
  • Pfadvalidierung — das Plugin liest nur JSON-Dateien aus dem konfigurierten Verzeichnis (kein Pfad-Traversal)

Unterstützung für Eltern- und Kind-Themes

Field Forge überprüft mehrere Ladepfade für JSON-Dateien:

  1. Aktives Theme-Verzeichnis fieldforge-json/
  2. Eltern-Theme-Verzeichnis fieldforge-json/ (wenn ein Kind-Theme aktiv ist)
  3. Alle benutzerdefinierten Pfade, die über den fieldforge/local_json/load_paths-Filter registriert sind

Das bedeutet, dass ein Eltern-Theme Feldgruppen über JSON bereitstellen kann und Kind-Themes diese überschreiben oder erweitern können.


Überlegungen zur Multi-Site

In einem WordPress-Multisite-Netzwerk hat jede Site ihr eigenes fieldforge-json/-Verzeichnis. Netzwerkadministratoren können zwischen folgenden Optionen wählen:

  • Pro-Site JSON-Dateien — jede Site hat ihre eigenen Feldgruppen
  • Geteilte JSON-Dateien — Feldgruppen, die im Eltern-Theme definiert sind, gelten für alle Sites, die es verwenden
  • Hybrid — einige Feldgruppen geteilt, einige pro Site

Filter-Hooks zur Anpassung

Benutzerdefinierter Speicherpfad

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

Benutzerdefinierte Ladepfade (z.B. von einem Plugin)

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


Vergleich mit ACFs lokaler JSON

ACF führte vor Jahren eine ähnliche lokale JSON-Funktion ein. Die Implementierung von Field Forge ist weitgehend kompatibel — JSON-Dateien von Feldgruppen aus ACF können mit geringfügigen Formatänderungen in das JSON-Verzeichnis von Field Forge importiert werden (Field Forge fügt einige Metadatenfelder hinzu, die ACF nicht verfolgt).

Wenn Sie von ACF mit vorhandenen JSON-Dateien migrieren, liest das Migrationswerkzeug von Field Forge diese während des Imports und übersetzt sie automatisch in das Format von Field Forge.


Anwendungsfälle

Agentur-Entwicklungsworkflow

Mehrere Entwickler arbeiten an Kundenwebsites. Feldgruppen, die im Code definiert sind, werden in Git commitet und über CI/CD bereitgestellt. Neue Teammitglieder ziehen das Repo und haben sofort alle Feldgruppen.

Gestufte Bereitstellungen

Entwicklung → Staging → Produktionspipeline, bei der Änderungen an Feldgruppen mit Theme-Updates reisen. Kein manueller Schritt „Oh warte, ich muss die Feldgruppen exportieren und importieren“.

Theme-Verteilung

Erstellen Sie ein WordPress-Theme, das mit vordefinierten Feldgruppen ausgeliefert wird. Benutzer installieren das Theme, Field Forge erkennt die JSON-Dateien, Feldgruppen erscheinen automatisch.

Plugin-Bündelung

Ein benutzerdefiniertes Plugin, das spezifische Feldgruppen benötigt. Versenden Sie die JSON-Dateien innerhalb des Plugins, registrieren Sie einen Ladepfad über einen Filter, Feldgruppen werden aktiviert, wenn das Plugin aktiviert wird.


Bereit, Ihre Feldgruppen versioniert zu verwalten?

Holen Sie sich Field Forge — ab $35/Jahr →

Die lokale JSON-Synchronisierung ist in jedem kostenpflichtigen Plan enthalten.

Forge KI-Assistent Online

Hallo! Ich bin der Field Forge KI-Assistent. Fragen Sie mich alles über das Plugin — Einrichtung, Funktionen, Fehlerbehebung oder Entwicklung.

Gerade eben
Unterstützt von Forge KI · Dokumentation durchsuchen