Normalerweise sieht das Plugin Advanced Custom Fields genau ein Verzeichnis dafür vor, in welchem die lokalen Feldgruppen als JSON-Datei gespeichert werden. Insofern wir den Verzeichnisnamen nicht geändert haben, werden die Feldgruppen im Order /acf-json/ abgelegt und können von dort aus für den Abruf der lokalen Feldgruppen genutzt werden.

Dies ist z.B. dann sinnvoll, wenn wir die Performance unserer WordPress Webseite verbessern wollen. Denn statt alle Feldgruppen direkt aus der Datenbank abzurufen, können wir diese Daten ebenso aus unseren lokalen JSON-Dateien laden. Denn in dieser Datei werden alle nötigen Informationen gespeichert, aus welchen Bestandteilen unsere ACF Feldgruppen bestehen. Laden wir diese Daten direkt aus den JSON-Dateien, können wir die Performance unserer Webseite verbessern, da wir so die Anzahl der Datenbankabfragen reduzieren.

So werden die Feldgruppen von ACF normalerweise in einem Zielverzeichnis gespeichert

Normalerweise können wir den ACF-Filter acf/settings/load_json (?) dafür verwenden, um festzulegen in welchem Zielverzeichnis unsere lokalen JSON-Feldgruppen gespeichert werden. Standardmäßig lautet der Name des Verzeichnisses /acf-json/ und wird mit Hilfe des folgenden Code-Schnipsels im Hauptverzeichnis unserer WordPress Themes abgelegt:

Wie lassen sich ACF Feldgruppen in unterschiedlichen Verzeichnissen speichern?

Möglicherweise administrieren wir ganz verschiedene Arten von Feldgruppen. Einige Feldgruppen sind für ein WordPress Theme und andere für ein Plugin vorgesehen. Jedoch speichert ACF standardmäßig alle Feldgruppen immer in das Unterverzeichnis /acf-json/ deines WordPress Themes. Dieser Zielort lässt sich mit dem oben beschriebenen ACF-Filter acf/settings/load_json beeinflussen und abändern. Was aber, wenn wir einige Felder davon, automatisch in anderen Verzeichnissen abspeichern möchten?

Um dieses Problem zu lösen, können wir die folgende PHP-Klasse acf_save_json_based_on_group_key verwenden. In dieser Klasse können wir verschiedene Feldgruppen-Schlüssel, wie z.B. group_584d5b7946f53 definieren, welcher für eine bestimmte Feldgruppe steht, die wir über das ACF Plugin angelegt haben. Denn jede Feldgruppe besitzt einen eindeutigen Feldgruppen-Schlüssel:

Wo genau können wir die unterschiedlichen Ziel-Verzeichnisse festlegen?

Der wichtigste Bestandteil der oberen PHP-Klasse ist der folgende. Hier können wir zunächst unterschiedliche Zielverzeichnisse definieren. Zum Beispiel ein Verzeichnis für das Haupttheme, eines für das Child-Theme und ein weiteres für ein Plugin.

Nun können wir im Array $this->groups jedem Verzeichnis-Pfad spezielle Feldgruppen-Schlüssel zuordnen und festlegen, welche Feldgruppe in welchem Verzeichnis gespeichert werden soll:

Haben wir diese PHP-Klasse in unserem WordPress Theme oder Plugin hinzugefügt, werden nun alle JSON-Dateien im jeweilig dazugehörigen Verzeichnis abgelegt, sobald wir eine Feldgruppe in der ACF Feldgruppen Administration ändern und speichern.