ACF-Felder standortübergreifend auf WP Multisite synchronisieren

Lesezeit: 2 Minuten

Benutzer-Avatar
Staffan Estberg

Ich habe nach einer Möglichkeit zur Synchronisierung gesucht ACF Felder über Sites hinweg auf einer WordPress-Multi-Site. Es gibt 5 Websites mit individuellen Inhalten, aber alle verwenden dieselben ACF-Felder. Ich möchte lieber vermeiden, diese neuen Felder auf jeder Site manuell erstellen und hinzufügen zu müssen.

Gibt es eine Problemumgehung?

Mit WP 4.8 und ACF Pro 5.5.1.4

Benutzer-Avatar
Ben Löffel

Da Sie ACF Pro verwenden, können Sie die Funktion „Export/Import“ nutzen.

  1. Erweiterte benutzerdefinierte Felder im Netzwerk aktivieren
  2. Erstellen Sie Feldgruppen auf der Hauptseite über das Menü „Benutzerdefinierte Felder“.
  3. Verwenden Sie Benutzerdefinierte Felder –> Exportieren, wählen Sie alle Feldgruppen aus und exportieren Sie nach PHP
  4. Fügen Sie das PHP in die functions.php Ihres (untergeordneten) Themes ein
  5. Gehen Sie zurück und löschen Sie die Felder der Hauptseite, damit keine Duplikate vorhanden sind.

Sie haben jetzt netzwerkweit ACF-Felder zur Verfügung.

Ich habe zuvor ein paar Mal über dasselbe nachgedacht und bin zu dem Schluss gekommen, dass es am einfachsten wäre, ein Github-Repo mit einer Reihe von acf-field-name.php-Dateien zu erstellen und diese Repos dann als Submodule in jedes Ihrer Projekte zu bringen. Wenn Sie diese PHP-Dateien im acf-Ordner in Ihrem Themenordner ablegen und die Funktion innerhalb von functions.php wie folgt verwenden

    function getAcfFileNames()
    {
        return array(
            'acf-one',
            'acf-two',
            'acf-three',
        );
    }

    function add_php_acf_field_groups()
    {
        $fileNames = getAcfFileNames();
        foreach ($fileNames as $fileName) {
            include_once 'acf/' . $fileName . '.php';
        }
    }

    ;
    add_action('acf/init', 'add_php_acf_field_groups');

Das sollte gut funktionieren. Und wenn Sie diese acf.php-Dateien innerhalb des Projekts bearbeiten möchten, können Sie -> verwenden https://github.com/BeAPI/ACF-PHP-Recovery um die PHP-Datei lokal wiederherzustellen und zu aktualisieren. Danach exportieren Sie einfach die Datei und übertragen sie in Ihr ACF-Repo.

Ansonsten habe ich leider keine bessere Lösung gefunden.

Es gibt einen großartigen Gist von Jesse Pearson, der automatisch alle acf-json-Dateien synchronisiert, wenn sich der Administrator anmeldet:

https://gist.github.com/jessepearson/a537b2f78556cd705947

In den Kommentaren zum Kern können Sie auch einige Verbesserungen am Code finden, achten Sie darauf!

Hat mir eine Menge Zeit gespart.

Sie können die Felder problemlos synchronisieren, solange Sie sie an Vorlagennamen und nicht an bestimmte Seiten oder Beiträge anhängen.

https://www.advancedcustomfields.com/resources/synchronized-json/

Nehmen Sie einfach eine schnelle Änderung an Ihrer function.php-Datei vor.

https://www.advancedcustomfields.com/resources/local-json/

Ich habe die exportierte PHP-Code-Methode verwendet, wenn ich mit der lokalen Arbeit fertig bin und ein Produktionsdesign aktualisieren möchte.

1383890cookie-checkACF-Felder standortübergreifend auf WP Multisite synchronisieren

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy