Über dieses Plugin

Der IDF ACF Bidirectional Sync ersetzt ACF Pro’s eingebauten bidirektionalen Sync für Relationship- und Post-Object-Felder durch einen kontrollierten, kaskadenfreien Mechanismus. Entwickelt von der Ideenfabrik GmbH, verhindert das Plugin Endlosschleifen und unkontrolliertes Überschreiben bei komplexen Beziehungen zwischen Custom Post Types.

Features

  • Master-Key-Anbindung: Automatische Updates und Lizenzprüfung über IDF Master-Key (>= 1.5.0). Non-blocking — Plugin funktioniert auch ohne Master-Key.
  • Anti-Kaskade: Wenn der Sync die Gegenseite aktualisiert, wird kein weiterer Sync ausgelöst — keine Endlosschleifen.
  • Diff-basierter Sync: Nur tatsächliche Änderungen (hinzugefügt/entfernt) werden synchronisiert, kein blindes Überschreiben.
  • Einfache Paare: Jedes Feld synchronisiert nur sein Gegenfeld — keine Kettenreaktion.
  • Auto-Erkennung: Scannt aktive ACF-Feldgruppen nach Relationship- und Post-Object-Feldern und erstellt automatisch Mapping-Vorschläge.
  • Manuelles Mapping: CPT-Slug und Feldname manuell eingeben, falls die Auto-Erkennung nicht greift.
  • Snapshots: Erstellt Snapshots aller aktuellen Verknüpfungen für den Diff-Vergleich.
  • Admin-Oberfläche: Einstellungsseite mit Mapping-Tabelle, Toggle-Schalter, Status-Übersicht und Snapshot-Verwaltung.
  • Hilfe-Seite: Dokumentation der Funktionsweise direkt im WordPress-Admin.
  • Dependency-Check: Automatische Prüfung, ob ACF Pro aktiv ist. Klare Admin-Hinweise bei fehlender Abhängigkeit.
  • Migration: Automatische Übernahme von Einstellungen aus älteren Plugin-Versionen — kein Datenverlust beim Update.

Changelog

v3.5.0

Hinzugefügt

  • Automatik "Leere Felder beim Speichern entfernen" (Default an, in den Aktionen abschaltbar): Beim Speichern eines Beitrags entfernt das Plugin leere Relationship-/Post-Object-Felder automatisch, statt sie als leeren Datenbank-Eintrag zurückzulassen. Verhindert dauerhaft die "leeren-aber-vorhandenen" Felder (Ursache leerer Frontend-Überschriften), die ACF beim Speichern jeder Feldgruppe anlegt. Per acf/save_post (Priorität 25).

v3.4.3

Behoben

  • Im IDF-Home-Dashboard fehlte der "Settings"-Button für dieses Plugin. Ursache: Das Admin-Menü lief unter dem Kurz-Slug idf-acf-sync, während IDF Home die Einstellungsseite unter dem Plugin-Slug idf-acf-bidirectional-sync sucht. Die Menü-Slugs (Hauptseite, Hilfe, Deinstallation) nutzen jetzt den vollen Plugin-Slug; der Button erscheint.

v3.4.2

Behoben

  • Der Sync hinterließ beim vollständigen Leeren eines Feldes ein leeres Array im Postmeta, statt es zu löschen. Solche "leeren-aber-vorhandenen" Felder ließen Ausblend-Logiken im Frontend leere Überschriften zeigen. Leere Felder werden jetzt per delete_field() vollständig entfernt.

Hinzugefügt

  • Aktion "Leere Felder aufräumen": findet und entfernt bestehende leere-aber-vorhandene Relationship-/Post-Object-Felder seitenweit. Erst Vorschau (zeigt Anzahl je Feld), dann Bereinigung. Es werden ausschließlich Felder ohne gültige Verknüpfung bereinigt, befüllte Felder bleiben unangetastet.

v3.4.1

Geändert

  • Backend-Oberfläche auf natives WordPress-Layout umgestellt (WP-Design-Konvention): native Listentabelle ohne Breitenbegrenzung, je Aktion eine eigene Spalte (Spiegeln, Spiegelungen löschen, Paar entfernen), native Checkbox statt eigenem Toggle, native Buttons und form-table für die Aktionen. Eigene Styles auf das Minimum reduziert (nur dezente Abblendung inaktiver Zeilen).

v3.4.0

Hinzugefügt

  • "Spiegelungen löschen" je Paar: entfernt gezielt nur die vom Plugin selbst erzeugten Verknüpfungen wieder. Von Hand gepflegte Verknüpfungen bleiben erhalten.
  • Protokoll der vom Plugin gesetzten Verknüpfungen in _idf_acf_sync_managed_{field_name} als Grundlage dafür. Greift für Verknüpfungen, die ab dieser Version automatisch erzeugt werden (nicht rückwirkend).

v3.3.2

Geändert

  • Der "Spiegeln"-Button zeigt nach dem Ausfuehren das Datum des letzten Spiegelns ("gespiegelt: TT.MM.JJJJ") und wird zu einem dezenten "erneut spiegeln"-Link. Aufgeraeumtere Uebersicht, ohne die Funktion zu entfernen. Gespeichert wird der Zeitstempel je Paar unter reconciled_at.

v3.3.1

Behoben

  • Aktivierungs-Absturz auf Sites mit mehreren IDF-Plugins behoben. Da dieses Plugin alphabetisch als erstes geladen wird, definierte sein Dependency-Checker die geteilte Klasse IDF_Dependency_Checker zuerst; ein spaeter ladendes Plugin mit einer ungeschuetzten Kopie stuerzte dann mit "Cannot declare class IDF_Dependency_Checker, because the name is already in use" ab. Der Checker dieses Plugins traegt jetzt einen eindeutigen Klassennamen (IDF_ACF_Sync_Dependency_Checker) und kollidiert nicht mehr mit den Kopien anderer Plugins.

v3.3.0

Geändert

  • Datenmodell von CPT-zu-Feld-Zuordnung (mappings) auf explizite Feld-Paare (pairs) umgestellt. Ein Paar verbindet ein Feld auf Seite A mit dem Gegenfeld auf Seite B; der Sync läuft in beide Richtungen.

Behoben

  • Selbst-Verknüpfungen (Felder, die auf den eigenen Beitragstyp zeigen, z.B. "Ähnliche Jobs" oder die Wissen-Verbindungen) wurden nie auf die Gegenseite gespiegelt. Ursache war eine Anti-Kaskaden-Bedingung, die das eigene Gegenfeld grundsätzlich übersprang.
  • Pro Beitragstyp wurde nur ein einziges Verknüpfungsfeld erkannt; weitere Felder fielen aus dem Sync.
  • Bei mehreren Feldern auf denselben Ziel-Beitragstyp landete der Rück-Sync im falschen Feld.

Hinzugefügt

  • Aktiv-Schalter je Verknüpfungs-Paar in der Übersicht.
  • "Spiegeln" (Reconcile): ergänzt für ein Paar die Gegenseiten bereits vorhandener Verknüpfungen, ohne bestehende zu entfernen.
  • Paar-basierte Auto-Erkennung inklusive symmetrischer Selbst-Verknüpfungen.
  • Automatische Migration der Alt-Konfiguration (mappings zu _legacy_mappings) auf das neue Paar-Modell.

v3.2.0

Hinzugefügt

  • Deinstallations-Standard: uninstall.php und Untermenü "Deinstallation" mit Opt-in zum Entfernen aller Plugin-Daten (Mappings, Snapshot-Zeitstempel, _idf_acf_sync_prev_*-Postmeta, Legacy-Optionen) beim Löschen des Plugins.

Geändert

  • Mapping-Liste nutzt jetzt das native WordPress-Listenlayout ohne feste Spaltenbreiten. Die Tabelle wird nicht mehr durch den .card-Container (max-width 520px) und das fixed-Tabellenlayout eingeengt und ist dadurch deutlich übersichtlicher.

v3.1.3

Geändert

  • Auf Git-basiertes Deployment migriert (idf-ci Workflow, readme.txt + CHANGELOG.md als Pflichtdateien).

v3.1.1

Behoben

  • Dependency-Check funktioniert jetzt unabhängig von der alphabetischen Plugin-Ladereihenfolge.
  • Dependency-Checker auf v1.5.1 (mit class_exists-Guard).

Hinzugefügt

  • Plugin-Header Requires at least: 6.0.

v3.1.0

Hinzugefügt

  • Master-Key-Anbindung für automatische Updates und Lizenzprüfung.
  • Dependency-Check (prüft IDF Master-Key >= 1.5.0).
  • Konstante IDF_ACF_SYNC_FILE.
  • Eigener Dependency-Checker in includes/.

v3.0.0

Geändert

  • Kompletter Rewrite auf IDF-Plugin-Standards.
  • IDF-Naming: alle Funktionen, Konstanten, Option-Keys, CSS-Klassen und Hooks auf idf_acf_sync_-Prefix.
  • Modulare Dateistruktur (includes/, assets/).
  • Eigener Top-Level-Menüpunkt mit Einstellungen und Hilfe.
  • CSS in assets/admin.css ausgelagert.
  • PHP 8.0 Minimum.

Hinzugefügt

  • Hilfe-Seite mit Funktionsbeschreibung und Bedienungsanleitung.
  • Dependency-Check für ACF Pro.
  • Migration v2.x-Option-Keys auf neue Namen.

Entfernt

  • Emoticons in der Admin-Oberfläche (Dashicons stattdessen).

0 Comments

Info
  • Version: 3.5.0
  • Version vom: 24. Juni 2026
  • WordPress-Version: 6.0
  • Getestet bis WP-Version: 6.5
  • PHP-Version: 8.0
  • Kompatible Themes: Alle
  • Erforderliche Plugins: Advanced Custom Fields (ACF), IDF Master-Key
  • Mitwirkende: Joerg Martin