Descubra a lista completa de constantes e hooks do ACF Multilingual (ACFML), com exemplos de como usá-los no seu código.
Hooks do ACF Multilingual (ACFML)
acfml_should_translate_acf_entity
Este hook permite que você determine se os campos ou grupos de campos do ACF devem ser traduzidos. Ao usar este filtro, você pode pular a tradução de campos ou grupos específicos com base na sua lógica personalizada.
Tipo: Filtro
Disponibilidade: ACFML 2.1.4
Parâmetros:
$shouldTranslate
(bool) (Obrigatório) Se o campo ou grupo de campos deve ser traduzido. O padrão é true.
$entity
(array) (Obrigatório) A entidade que está sendo traduzida, que é um array de campo ou um array de grupo.
$entityType
(string) (Opcional) O tipo de entidade que está sendo traduzida. Pode ser ‘field’ ou ‘group’.
Exemplo de uso do hook:
add_filter( 'acfml_should_translate_acf_entity', function( $shouldTranslate, $entity, $entityType ) {
if ( 'field' === $entityType ) {
return false;
}
return $shouldTranslate;
} );
acfml_field_group_mode_field_translation_preference
Este filtro permite que você substitua a preferência de tradução padrão para os campos do ACF quando um grupo de campos usa o modo Mesmos campos ou Campos diferentes.
Nota: este filtro altera apenas a preferência de tradução padrão, não a preferência salva de campos individuais. Se você modificar o padrão, precisará salvar novamente os grupos de campos afetados para que o novo padrão seja aplicado.
Tipo: Filtro
Disponibilidade: ACFML 2.0.0
Parâmetros:
$fieldTranslationPreference (int) (Obrigatório) A preferência de tradução padrão para o campo. Valores possíveis:
0— Não traduzir. O WPML ignora o campo inteiramente.1— Copiar. O valor do campo é copiado para todos os idiomas e permanece sincronizado.2— Traduzir. O valor do campo é disponibilizado para tradução.3— Copiar uma vez. O valor do campo é copiado para todos os idiomas uma vez, após o qual pode ser editado em cada idioma independentemente.
$groupMode (string) (Obrigatório) O modo de tradução do grupo de campos. Valores possíveis: translation ou localization.
$field (array) (Obrigatório) O array do campo do ACF.
Exemplo de uso do hook:
add_filter( 'acfml_field_group_mode_field_translation_preference', function( $fieldTranslationPreference, $groupMode, $field ) {
$fieldType = $field['type'] ?? null;
if ( 'link' === $fieldType ) {
return 2; // WPML_TRANSLATE_CUSTOM_FIELD
}
return $fieldTranslationPreference;
}, 10, 3 );
Este exemplo força o tipo de campo link a ser traduzível, substituindo sua preferência padrão copy ou copy_once.
Constantes do ACF Multilingual (ACFML)
ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS
A partir do ACFML 2.1.5, você pode usar esta constante para incluir strings de grupos de campos no trabalho de tradução de post.
Para ativar isso, adicione a seguinte linha ao seu arquivo wp-config.php:
define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );
Notas:
- Se você criou um trabalho de tradução antes de adicionar este código ao seu arquivo wp-config.php, cancele-o e crie um novo.
- Você pode enviar rótulos e escolhas de campos para tradução através do Painel de tradução, se necessário.
ACFML_HIDE_FIELD_ANNOTATIONS
A cada campo traduzido, o ACF Multilingual adiciona informações sobre o valor no idioma original.
Para remover essas informações dos campos traduzidos, você pode adicionar a seguinte linha ao arquivo wp-config.php do seu site:
define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );
ACFML_REPEATER_SYNC_DEFAULT
Você pode usar esta constante para definir o valor padrão do recurso de sincronização de campos Repeater. Ele é definido como true por padrão. Isso significa que os campos Repeater são sincronizados automaticamente nas traduções. Se você definir esta constante como false, a sincronização de campos Repeater será desativada.
Você pode substituir o valor padrão de ACFML_REPEATER_SYNC_DEFAULT no arquivo functions.php do seu tema:
define('ACFML_REPEATER_SYNC_DEFAULT', false);
ACFML_SCAN_LOCAL_FIELDS
Definir esta constante como false desativa a análise de arquivos JSON em busca de campos locais.
Isso significa que, se você alterar a preferência de tradução em campos locais, ela não será sincronizada com o banco de dados. Você precisa definir a preferência de tradução manualmente para os campos.
Para mais informações, confira a documentação oficial do ACF sobre o uso de JSON local.