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 filtro decide se o ACFML mostra os rótulos traduzidos de um campo ou grupo de campos do ACF. Retorne false para mostrar os rótulos originais em todos os idiomas. Os valores dos campos não mudam.
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 da 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;
}, 10, 3 );
acfml_field_group_mode_field_translation_preference
Este filtro permite que você substitua a preferência de tradução padrão para campos do ACF quando um grupo de campos usa Mesmo conteúdo em todos os idiomas, traduzido ou Cada idioma tem seu próprio conteúdo.
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 ( 'url' === $fieldType ) {
return 1; // WPML_COPY_CUSTOM_FIELD
}
return $fieldTranslationPreference;
}, 10, 3 );
Este exemplo dá ao tipo de campo url a preferência Copiar em vez de sua preferência Traduzir recomendada.
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 do grupo de campos no trabalho de tradução do 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 opções de campos para tradução por meio 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
Esta constante define o estado padrão da caixa de seleção Manter subcampos repetidores e flexíveis na mesma ordem do idioma padrão. O ACFML mostra esta caixa de seleção na caixa Sincronizar traduções do ACFML de um post que usa a opção Expert. O padrão é true, de modo que a caixa de seleção começa selecionada. Defina a constante como false para começar com a caixa de seleção desmarcada. Uma escolha que você salva em um post substitui esse padrão.
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
Esta constante define o padrão da configuração Sincronizar preferências de tradução para campos locais em ACFFerramentas. Defina-a como true para sincronizar as preferências de tradução de campos locais (Local JSON e campos registrados por PHP) em cada requisição do painel de administração. Quando a constante não está definida ou é false, o ACFML não as sincroniza automaticamente.
Uma escolha que você salva em ACFFerramentas substitui esta constante. Para sincronizar uma vez, selecione Sincronizar uma vez agora lá e clique em Aplicar.
Para mais informações, confira a documentação oficial do ACF sobre o uso de JSON local (abre em uma nova aba).