Scopri l’elenco completo delle costanti e degli hook di ACF Multilingual (ACFML), con esempi per utilizzarli nel tuo codice.
Hook di ACF Multilingual (ACFML)
acfml_should_translate_acf_entity
Questo filtro decide se ACFML mostra le etichette tradotte di un campo o di un gruppo di campi di ACF. Restituisci false per mostrare le etichette originali in ogni lingua. I valori dei campi non cambiano.
Tipo: Filtro
Disponibilità: ACFML 2.1.4
Parametri:
$shouldTranslate
(bool) (Obbligatorio) Indica se il campo o il gruppo di campi deve essere tradotto. L’impostazione predefinita è true.
$entity
(array) (Obbligatorio) L’entità in fase di traduzione, che può essere un array di campi o un array di gruppi.
$entityType
(string) (Opzionale) Il tipo di entità in fase di traduzione. Può essere ‘field’ o ‘group’.
Esempio di utilizzo dell’hook:
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
Questo filtro ti permette di sovrascrivere la preferenza di traduzione predefinita per i campi ACF quando un gruppo di campi utilizza Stesso contenuto in ogni lingua, tradotto o Ogni lingua ha il proprio contenuto.
Nota: questo filtro modifica solo la preferenza di traduzione predefinita, non la preferenza salvata dei singoli campi. Se modifichi l’impostazione predefinita, devi salvare nuovamente i gruppi di campi interessati affinché venga applicata la nuova impostazione predefinita.
Tipo: Filtro
Disponibilità: ACFML 2.0.0
Parametri:
$fieldTranslationPreference (int) (Obbligatorio) La preferenza di traduzione predefinita per il campo. Valori possibili:
0— Non tradurre. WPML ignora completamente il campo.1— Copia. Il valore del campo viene copiato in tutte le lingue e rimane sincronizzato.2— Traduci. Il valore del campo viene reso disponibile per la traduzione.3— Copia una volta. Il valore del campo viene copiato in tutte le lingue una volta, dopodiché può essere modificato in ogni lingua in modo indipendente.
$groupMode (string) (Obbligatorio) La modalità di traduzione del gruppo di campi. Valori possibili: translation o localization.
$field (array) (Obbligatorio) L’array del campo ACF.
Esempio di utilizzo dell’hook:
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 );
Questo esempio assegna al tipo di campo url la preferenza Copia anziché la sua preferenza consigliata Traduci.
Costanti di ACF Multilingual (ACFML)
ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS
A partire da ACFML 2.1.5, puoi utilizzare questa costante per includere le stringhe del gruppo di campi nel lavoro di traduzione dell’articolo.
Per abilitarlo, aggiungi la seguente riga al tuo file wp-config.php:
define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );
Note:
- Se hai creato un lavoro di traduzione prima di aggiungere questo codice al tuo file wp-config.php, annullalo e creane uno nuovo.
- Se necessario, puoi inviare le etichette e le scelte dei campi per la traduzione tramite la Dashboard di traduzione.
ACFML_HIDE_FIELD_ANNOTATIONS
A ogni campo tradotto, ACF Multilingual aggiunge informazioni sul valore nella lingua originale.
Per rimuovere queste informazioni dai campi tradotti, puoi aggiungere la seguente riga al file wp-config.php del tuo sito:
define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );
ACFML_REPEATER_SYNC_DEFAULT
Questa costante imposta lo stato predefinito della casella di controllo Mantieni i sottocampi repeater e flessibili nello stesso ordine della lingua predefinita. ACFML mostra questa casella di controllo nel riquadro Sincronizza le traduzioni di ACFML di un articolo che utilizza l’opzione Esperto. L’impostazione predefinita è true, quindi la casella di controllo parte selezionata. Imposta la costante su false per iniziare con la casella di controllo deselezionata. Una scelta che salvi su un articolo sovrascrive questo valore predefinito.
Puoi sovrascrivere il valore predefinito di ACFML_REPEATER_SYNC_DEFAULT nel file functions.php del tuo tema:
define('ACFML_REPEATER_SYNC_DEFAULT', false);
ACFML_SCAN_LOCAL_FIELDS
Questa costante imposta il valore predefinito dell’impostazione Sincronizza le preferenze di traduzione per i campi locali in ACFStrumenti. Impostala su true per sincronizzare le preferenze di traduzione dei campi locali (JSON locale e campi registrati in PHP) a ogni richiesta dell’area di amministrazione. Quando la costante non è definita o è false, ACFML non li sincronizza automaticamente.
Una scelta che salvi in ACFStrumenti sovrascrive questa costante. Per sincronizzare una volta, seleziona Sincronizza una volta adesso in quella sezione e fai clic su Applica.
Per ulteriori informazioni, consulta la documentazione ufficiale di ACF sull’utilizzo del JSON locale (si apre in una nuova scheda).