Aprenda a definir as configurações de tradução para campos personalizados usando o arquivo wpml-config.xml. Defina opções de tradução como traduzir e copiar, e insira atributos adicionais.
Definir opções de tradução para campos personalizados
O WPML fornece quatro opções de tradução para campos personalizados:
| Ação | Descrição | Visível no ATE? |
|---|---|---|
| Traduzir | Ativa o valor do campo personalizado para tradução | Sim |
| Copiar | Copia o valor do campo personalizado do idioma padrão para o idioma secundário, mantendo ambos sincronizados | Não |
| Copiar uma vez | Copia o valor do campo personalizado do idioma padrão para o idioma secundário, sem manter ambos sincronizados | Não |
| Ignorar | Evita copiar o valor do campo personalizado para o idioma secundário | Não |
Exemplo de como adicionar campos personalizados ao arquivo de configuração de idiomas
<wpml-config>
<custom-fields>
<custom-field action="copy">quantity</custom-field>
<custom-field action="translate">custom-title</custom-field>
<custom-field action="copy">weight</custom-field>
<custom-field action="copy-once">bg-color</custom-field>
<custom-field action="translate">custom-description</custom-field>
<custom-field action="ignore">date-added</custom-field>
</custom-fields>
</wpml-config>Adicionar atributos para campos personalizados
Atributos de rótulo e grupo
O WPML permite que você adicione atributos que aparecem no Editor de tradução avançado. Isso inclui:
- style – exibe linha única (line), área de texto (textarea) ou WYSIWYG (visual)
- label – exibe o rótulo ao lado do campo
- group – especifica a qual grupo o campo personalizado pertence. Quando um campo está em um grupo:
- O campo é removido da seção de campos personalizados
- O campo é adicionado à seção do grupo relacionado
Exemplo de atributos de campos personalizados
<wpml-config>
<custom-fields>
<custom-field action="translate" style="line" label="Title">custom-title</custom-field>
<custom-field action="translate" style="textarea" label="Description">custom-description</custom-field>
<custom-field action="translate" style="visual" label="Some content" group="Custom group">custom-wysiwyg</custom-field>
</custom-fields>
</wpml-config>Veja como esses atributos aparecerão no Editor de tradução avançado:

Atributo encode
Você também pode adicionar atributos encode opcionais para alterar a codificação do valor padrão (sem codificação). O atributo encode aceita os seguintes valores:
- json
- base64
- urlencode
Se você quiser usar várias codificações, separe os valores com uma vírgula:
Exemplo de como adicionar campos personalizados ao arquivo de configuração de idiomas para alterar a codificação
<wpml-config>
<custom-fields>
<custom-field action="translate" encoding="json,base64">keywords</custom-field>
</custom-fields>
</wpml-config>Atributo translate_link_target
Se o seu campo personalizado contiver um link, você pode usar o atributo translate_link_target para forçar o WPML a verificar e ajustar os links no campo personalizado. Para que esse atributo funcione, certifique-se de que o link esteja envolvido por tags <a>.
Exemplo de como forçar o WPML a ajustar links em um campo personalizado
<wpml-config>
<custom-fields>
<custom-field action="translate" translate_link_target="1">name_of_the_acf_field</custom-field>
</custom-fields>
</wpml-config>O WPML traduz todas as subchaves em campos personalizados por padrão. Para ignorar isso, especifique quais subchaves devem ser traduzidas.
Exemplo de código para tradução de subchaves em campos personalizados
<wpml-config>
<custom-fields>
<custom-field action="translate">with_attributes</custom-field>
<custom-field action="translate">with_deep_attributes</custom-field>
<custom-field action="translate">no_attributes</custom-field>
</custom-fields>
<custom-fields-texts>
<key name="with_attributes">
<key name="attribute1" />
<key name="attribute2" />
</key>
<key name="with_deep_attributes">
<key name="attribute1" />
<key name="attribute2">
<key name="level1">
<key name="level2">
</key>
</key>
</key>
</key>
</custom-fields-texts>
</wpml-config>Curingas
Você também pode usar curingas da mesma forma que são usados para Textos de administração:
- Corresponder a todos os subcampos que começam com title- usando o código:
<key name="title-*" /> - Corresponder a todos os subcampos (o que geralmente é usado para corresponder a um índice de array) usando o código:
<key name="*" /> - Para obter
[{"title":"First title"},{"title":"Second title"}], use o código
Exemplo de arquivo de configuração com curingas
<wpml-config>
<custom-fields-texts>
<key name="key-name">
<key name="*">
<key name="title" />
</key>
</key>
</custom-fields-texts>
</wpml-config>Converter automaticamente IDs em campos personalizados de post
A partir do WPML 4.8, você pode declarar IDs localizados em campos personalizados de post. O WPML substitui os IDs por suas versões traduzidas no frontend.
Você só pode fazer isso quando a opção de tradução for Copiar (ou seja, ao usar <custom-field action="copy">).
Em custom-fields do seu arquivo wpml-config.xml, use:
- type para indicar qual objeto é referenciado, ou seja, post-ids
- sub-type (opcional) quando você quiser declarar o slug de um tipo de post
O WPML pode detectar e converter IDs nestes formatos:
- Um único ID (por exemplo, 123)
- Uma lista de IDs separados por vírgula (por exemplo, “123,456,789”)
- Um array (e array codificado) de IDs (por exemplo, [123,456,789])
Exemplo de como declarar IDs em campos personalizados
<custom-fields> <custom-field action="copy" type="post-ids" sub-type="product">custom_field_with_id</custom-field> </custom-fields>
Quando os IDs estão aninhados na seção custom-fields-texts em um subnível, o WPML os detectará e converterá, independentemente da configuração de tradução do campo (copiar, traduzir, etc.).
Exemplo de como declarar IDs em campos personalizados aninhados
<wpml-config>
<custom-fields-texts>
<key name="custom_field_with_nested_ids">
<key name="custom_field_nested_key_with_ids" type="post-ids" sub-type="product" />
<key name="custom_field_nested_key_with_ids_with_wildcard_*" type="post-ids" sub-type="product" />
<key name="custom_field_nested_key_with_subkey">
<key name="custom_field_nested_key_with_subkey_with_ids" type="post-ids" sub-type="product" />
</key>
</key>
</custom-fields-texts>
</wpml-config>Usando a mesma sintaxe de type e sub-type, você pode declarar IDs em textos de administração (tabela wp_options).
Definir opções de tradução para campos personalizados de termos de taxonomia
Para traduzir campos personalizados de termos de taxonomia, você precisa especificar o nome do campo e a ação que o WPML deve realizar: traduzir, copiar, copiar uma vez, ignorar.
Aninhe essa marcação sob a tag wpml-config.
Você pode definir as seguintes opções de tradução para campos personalizados de termos:
- translate: permite que seu usuário traduza o valor do termo personalizado. Esses termos aparecem na tela do Editor de tradução e podem ser traduzidos manual ou automaticamente, ou enviados para outros tradutores.
- copy: copia o valor do termo personalizado do idioma padrão para os idiomas secundários. Isso significa que a atualização do valor do termo personalizado do idioma padrão sempre será copiada para o idioma secundário. Os termos personalizados definidos como copy não são exibidos na tela do Editor de tradução.
- copy-once: copia o valor do termo personalizado para o idioma secundário no processo de tradução inicial. Os termos personalizados que usam a ação copy-once não aparecerão na tela do Editor de tradução. No entanto, o usuário pode alterar o valor do termo personalizado do idioma secundário para ser diferente do idioma padrão usando a tela de edição do post.
- ignore: evita que o termo personalizado seja copiado para o idioma secundário.
Exemplo de como adicionar termos personalizados ao arquivo de configuração de idiomas
<wpml-config>
<custom-term-fields>
<custom-term-field action="copy">term_meta_A</custom-term-field>
<custom-term-field action="translate">term_meta_B</custom-term-field>
<custom-term-field action="ignore">term_meta_C</custom-term-field>
<custom-term-field action="copy-once">term_meta_D</custom-term-field>
</custom-term-fields>
</wpml-config>Converter automaticamente IDs armazenados em campos personalizados de termos de taxonomia
Você só pode fazer isso quando o campo está definido como Copiar (ou seja, ao usar <custom-term-field action="copy">).
Assim como nos campos personalizados de post, você pode declarar IDs de objetos mantidos em campos personalizados de taxonomia. O WPML então os converte automaticamente para suas versões traduzidas.
Na seção custom-term-fields, use:
- type para indicar qual objeto é referenciado, ou seja, post-ids ou taxonomy-ids
- sub-type (opcional) quando você quiser declarar a entidade específica
Exemplo de como declarar IDs em campos personalizados de termos
<wpml-config>
<custom-term-fields>
<custom-term-field action="copy" type="post-ids" sub-type="product">custom_term_field_with_id</custom-term-field>
</custom-term-fields>
</wpml-config>Recursos adicionais
Para saber mais sobre o arquivo wpml-config.xml, visite o guia sobre Arquivos de configuração de idiomas.
Para personalizar outros elementos usando o arquivo wpml-config.xml, visite nossos guias adicionais:
- Traduzir shortcodes personalizados com o WPML
- Registrar conteúdo de construtor de páginas para tradução
- Registrar widgets personalizados de construtor de páginas para tradução
- Registrar termos, tipos e taxonomias personalizados como traduzíveis
- Tornar blocos personalizados do Gutenberg traduzíveis
- Traduzir textos que temas e plugins salvam em wp_options
- Personalizar o seletor de idiomas do WPML usando o arquivo de configuração do WPML