WPML

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:

  • 0Não traduzir. O WPML ignora o campo inteiramente.
  • 1Copiar. O valor do campo é copiado para todos os idiomas e permanece sincronizado.
  • 2Traduzir. O valor do campo é disponibilizado para tradução.
  • 3Copiar 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.

Escrito por Amir · Última atualização em 30 de junho de 2026