WordPress: Advanced Custom Fields und WPML

Das Plugin „Advanced Custom Fields“ bietet die Möglichkeiten, bestimmten Seiten-Typen (z.B. Page, Post oder auch Custom) benutzerdefinierte Felder hinzuzufügen. Soll die Webseite jetzt mit Hilfe von WPML mehrsprachig gemacht werden, stößt man auf eine Überraschung: Beim Anlegen der Seiten für eine andere Sprache, werden die Custom-Fields nicht mit dupliziert. Das würde bedeuten, dass der gesamte Inhalt dieser Felder auf die Seite der anderen Sprache manuell übertragen werden muss, da dieser sonst nicht Bestandteil der neuen Seite ist und im Frontend nicht angezeigt wird (auch wenn dieser nicht übersetzt werden muss).

Es entspricht dem standardmäßigen Verhalten von WordPress, dass die Custom-Fields beim Duplizieren nicht kopiert werden. Um die Custom-Fields beim Duplizieren der Seite ebenfalls mit zu übernehmen, sind folgende Einstellungen notwendig:

1. Benutzerdefinierte Felder übersetzbar machen

Zunächst müssen in den Einstellungen von WPML (Im Menü: WPML – Übersetzungsmanagement – Einrichtung des mehrsprachigen Inhalts) die benutzerdefinierten Felder ausgewählt werden, welche übersetzt werden sollen. Diese Einstellungen befinden sich unter „Übersetzung benutzerdef. Felder“ und dort muss für jedes Feld die Option „Übersetzen“ ausgewählt werden. Die Anzahl der Felder kann, je nach Seitenumfang, sehr groß sein. Damit nicht jeder Radio-Button manuell angeklickt werden muss, kann in der Browser-Konsole folgender JavaScript ausgeführt werden:

$('#icl_cf_translation td').each(function() {if($(this).attr('title') === 'Übersetzen'){$(this).find('input[type=radio]').prop('checked',true);}});

2. Übersetzen der ACF-Gruppen

Die benutzerdefinierten Felder (ACF) werden beim Duplizieren übernommen, jedoch beim Bearbeiten der übersetzten Seite nicht angezeigt. Damit diese auch im Backend sichtbar werden, muss in den Einstellungen von WPML (Im Menü: WPML – Übersetzungsmanagement – Einrichtung des mehrsprachigen Inhalts – Benutzerdefinierte Beiträge) der Beitragstyp „Felder-Gruppen“ auf „Übersetzen“ gestellt werden. Jetzt ist es möglich, die Felder-Gruppen unter „Eigene Felder“ (Custom Fields) zu bearbeiten und für jede Gruppe eine Übersetzung in der entsprechenden Sprache anzulegen. Beinhalten die benutzerdefinierten Felder (ACF) keinen vordefinierten Inhalt, reicht hier das einfache Duplizieren der Felder-Gruppen aus. Nachdem alle Gruppen erstellt wurden, werden diese auf den Seiten der neuen Sprache angezeigt.

3. Seiten duplizieren

Beim Duplizieren der Seiten ist es wichtig, den Inhalt nicht über den Button „Inhalte von Deutsch kopieren“ zu übernehmen. Die Seite muss in der Bearbeiten-Ansicht der deutschen Seite über die rechte Meta-Box Sprache dupliziert werden, damit alle Inhalte übernommen werden (Checkbox anklicken und Duplizieren wählen).