WPML

Entdecken Sie die vollständige Liste der Konstanten und Hooks für ACF Multilingual (ACFML) mit Beispielen für deren Verwendung in Ihrem Code.

Hooks für ACF Multilingual (ACFML)

acfml_should_translate_acf_entity

Dieser Filter entscheidet, ob ACFML die übersetzten Beschriftungen eines ACF-Feldes oder einer Feldgruppe anzeigt. Geben Sie false zurück, um die Originalbeschriftungen in jeder Sprache anzuzeigen. Die Feldwerte ändern sich nicht.

Typ: Filter

Verfügbarkeit: ACFML 2.1.4

Parameter:

$shouldTranslate
(bool) (Erforderlich) Ob das Feld oder die Feldgruppe übersetzt werden soll. Standardmäßig true.

$entity
(array) (Erforderlich) Die zu übersetzende Entität, die entweder ein Feld-Array oder ein Gruppen-Array ist.

$entityType
(string) (Optional) Der Typ der zu übersetzenden Entität. Dies kann entweder ‚field‘ oder ‚group‘ sein.

Beispiel für die Verwendung des Hooks:

add_filter( 'acfml_should_translate_acf_entity', function( $shouldTranslate, $entity, $entityType ) {
	if ( 'field' === $entityType ) {
		return false;
	}

	return $shouldTranslate;
}, 10, 3 );

acfml_field_group_mode_field_translation_preference

Dieser Filter ermöglicht es Ihnen, die Standard-Übersetzungseinstellung für ACF-Felder zu überschreiben, wenn eine Feldgruppe Gleicher Inhalt in jeder Sprache, übersetzt oder Jede Sprache hat ihren eigenen Inhalt verwendet.

Hinweis: Dieser Filter ändert nur die Standard-Übersetzungseinstellung, nicht die gespeicherte Einstellung einzelner Felder. Wenn Sie den Standardwert ändern, müssen Sie die betroffenen Feldgruppen erneut speichern, damit der neue Standardwert angewendet wird.

Typ: Filter

Verfügbarkeit: ACFML 2.0.0

Parameter:

$fieldTranslationPreference (int) (Erforderlich) Die Standard-Übersetzungseinstellung für das Feld. Mögliche Werte:

  • 0 — Nicht übersetzen. WPML ignoriert das Feld vollständig.
  • 1 — Kopieren. Der Feldwert wird in alle Sprachen kopiert und bleibt synchron.
  • 2 — Übersetzen. Der Feldwert wird für die Übersetzung verfügbar gemacht.
  • 3 — Einmal kopieren. Der Feldwert wird einmal in alle Sprachen kopiert, danach kann er in jeder Sprache unabhängig bearbeitet werden.

$groupMode (string) (Erforderlich) Der Übersetzungsmodus der Feldgruppe. Mögliche Werte: translation oder localization.
$field (array) (Erforderlich) Das ACF-Feld-Array.

Beispiel für die Verwendung des Hooks:

add_filter( 'acfml_field_group_mode_field_translation_preference', function( $fieldTranslationPreference, $groupMode, $field ) {
    $fieldType = $field['type'] ?? null;

    if ( 'url' === $fieldType ) {
        return 1; // WPML_COPY_CUSTOM_FIELD
    }

    return $fieldTranslationPreference;
}, 10, 3 );

Dieses Beispiel weist dem Feldtyp url die Einstellung Kopieren anstelle der empfohlenen Einstellung Übersetzen zu.

Konstanten für ACF Multilingual (ACFML)

ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS

Ab ACFML 2.1.5 können Sie diese Konstante verwenden, um Feldgruppen-Strings in den Beitrags-Übersetzungsauftrag aufzunehmen.

Um dies zu aktivieren, fügen Sie die folgende Zeile zu Ihrer Datei wp-config.php hinzu:

define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );

Hinweise:

  • Wenn Sie einen Übersetzungsauftrag erstellt haben, bevor Sie diesen Code zu Ihrer Datei wp-config.php hinzugefügt haben, brechen Sie ihn ab und erstellen Sie einen neuen.
  • Bei Bedarf können Sie Feldbeschriftungen und -auswahlen über das Übersetzungs-Dashboard zur Übersetzung senden.

ACFML_HIDE_FIELD_ANNOTATIONS

Zu jedem übersetzten Feld fügt ACF Multilingual Informationen über den Wert in der Originalsprache hinzu.

Um diese Informationen aus übersetzten Feldern zu entfernen, können Sie die folgende Zeile zur Datei wp-config.php Ihrer Website hinzufügen:

define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );

ACFML_REPEATER_SYNC_DEFAULT

Diese Konstante legt den Standardstatus des Kontrollkästchens Keep repeater and flexible sub-fields in the same order as the default language fest. ACFML zeigt dieses Kontrollkästchen in der Box ACFML Synchronise translations eines Beitrags an, der die Option Expert verwendet. Der Standardwert ist true, sodass das Kontrollkästchen anfangs ausgewählt ist. Setzen Sie die Konstante auf false, damit das Kontrollkästchen anfangs deaktiviert ist. Eine Auswahl, die Sie in einem Beitrag speichern, überschreibt diesen Standardwert.

Sie können den Standardwert von ACFML_REPEATER_SYNC_DEFAULT in der Datei functions.php Ihres Themes überschreiben:

define('ACFML_REPEATER_SYNC_DEFAULT', false);

ACFML_SCAN_LOCAL_FIELDS

Diese Konstante legt den Standardwert für die Einstellung Sync Translation Preferences for Local Fields unter ACFWerkzeuge fest. Setzen Sie sie auf true, um die Übersetzungseinstellungen lokaler Felder (lokale JSON- und über PHP registrierte Felder) bei jeder Admin-Anfrage zu synchronisieren. Wenn die Konstante nicht definiert oder false ist, synchronisiert ACFML diese nicht automatisch.

Eine Auswahl, die Sie unter ACFWerkzeuge speichern, überschreibt diese Konstante. Um einmalig zu synchronisieren, wählen Sie dort Sync once now aus und klicken Sie auf Anwenden.

Weitere Informationen finden Sie in der offiziellen ACF-Dokumentation über die Verwendung von lokalem JSON (wird in einem neuen Tab geöffnet).

Geschrieben vonAmir