So lässt sich die „Synchronise repeater and flexible sub-fields positions in post translations“ Einstellung von WPML & ACFML deaktivieren
Das Problem
Falls du WordPress zusammen mit Advanced Custom Fields (ACF) einsetzt und eine mehrsprachige Seite mit WPML und dem Advanced Custom Fields Multilingual (ACFML) Plugin betreibst, hast du wahrscheinlich schon mal die folgende Option unter deinen Wiederholung-Feldern (ACF Repeater Field) gesehen:
Auf den ersten Blick sieht dies vielleicht nach einer guten Idee aus und die Option ist auch standardmässig aktiviert. Für Webseiten, welche aber ein Wiederholungs- bzw. Flexibler-Inhalt-Feld (Repater / Flexible Content field) als Haupt-Inhaltselement verwenden und die Seiten unterschiedliche Inhalte in den verschiedenen Sprachen haben können, wird dies ein unschönes Durcheinander verursachen. Ich verwende für das Entwickeln von massgeschneiderten Webseiten gerne das Flynt theme, welches ein solches Setup verwendet.
Die Lösung: die „Synchronise translations“ Option standardmässig deaktivieren
Leider habe ich keinen dokumentierten Weg gefunden um diese Option programmatisch zu auszuschalten. Beim Durchsehen des Codes des ACFML plugins field mir aber die folgende Lösung in zwei Schritten auf:
1. Füge folgende Zeilen in deine wp-config.php
Datei ein:
/* Die Option von ACFML zum Synchronisieren Repeater und Flexible Content Field Positionen standardmässig ausschalten */
define( 'ACFML_REPEATER_SYNC_DEFAULT', false );
2. Höchstwahrscheinlich: gespeicherte Werte dieser Einstellung zurücksetzen
Wähle in deiner Datenbank die Tabelle „wp_options“ und schaue nach einer Zeile mit „option_name“ = acfml_synchronise_repeater_fields
. Dieser Eintrag wird (falls vorhanden) Post-IDs und den Boolean-Wert (Aktiv: 1 – Inaktiv: 0) der „Synchronise translations“ Option enthalten.
Benenne den acfml_synchronise_repeater_fields
Wert in der „value_name“ Spalte um zu acfml_synchronise_repeater_fields_backup
. Damit wird die Option für alle bestehenden Posts wieder auf den Standard (= ausgeschaltet) zurückgesetzt. Sobald du die Einstellung wieder auf einem Post aktivierst, wird der Eintrag in der Datenbank neu angelegt.
💡 Falls du eine neue Seite hast oder WPML erst gerade aktivierst, kann es sein, dass der Datenbank-Eintrag noch gar nicht erstellt wurde. Dann brauchst du hier nichts zu unternehmen.
Rückmeldungen werden geschätzt
Falls diese Lösung dir geholfen hat das gleiche Problem zu lösen wäre es grossartig wenn du mich dies in den Kommentaren unten wissen lassen könntest.