Ü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-Slugidf-acf-bidirectional-syncsucht. 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-tablefü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_Checkerzuerst; 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 (
mappingszu_legacy_mappings) auf das neue Paar-Modell.
v3.2.0
Hinzugefügt
- Deinstallations-Standard:
uninstall.phpund 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 dasfixed-Tabellenlayout eingeengt und ist dadurch deutlich übersichtlicher.
v3.1.3
Geändert
- Auf Git-basiertes Deployment migriert (idf-ci Workflow,
readme.txt+CHANGELOG.mdals 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.cssausgelagert. - 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).