Pular a navegação
Atualizado
fevereiro 5, 2025

O ACF permite que você registre campos e grupos de campos utilizando código PHP. Para traduzir esses campos com o WPML, primeiramente é necessário torná-los traduzíveis.

Há um problema conhecido ao registrar campos de layout ACF (como campos Repeater) utilizando PHP. Por favor, consulte nossa solução alternativa disponível para resolver esta questão.

Para registrar campos programaticamente, é necessário utilizar a função acf_add_local_field_group. Em seguida, é possível tornar esses campos ACF traduzíveis especificando a configuração wpml_cf_preferences para cada campo em seu código.

Existem quatro valores numéricos que você pode usar para wpml_cf_preferences:

  • Ignorar: 0
  • Copiar: 1
  • Traduzir: 2
  • Copiar uma vez: 3

Abaixo você pode ver um exemplo de adição da chave wpml_cf_preferences a um grupo de campos registrado programaticamente.

acf_add_local_field_group( [
    'key'                   => 'group_1',
    'title'                 => 'My Group',
    'fields'                => [
        [
            'key'                 => 'field_1',
            'label'               => 'Sub Title',
            'name'                => 'sub_title',
            'type'                => 'text',
            'prefix'              => '',
            'instructions'        => '',
            'required'            => 0,
            'conditional_logic'   => 0,
            'wrapper'             => [
                'width' => '',
                'class' => '',
                'id'    => '',
            ],
            'default_value'       => '',
            'placeholder'         => '',
            'prepend'             => '',
            'append'              => '',
            'maxlength'           => '',
            'readonly'            => 0,
            'disabled'            => 0,
            'wpml_cf_preferences' => 2, // This field ("Sub Title") will be translated.
        ],
    ],
    'location'              => [
        [
            [
                'param'    => 'post_type',
                'operator' => '==',
                'value'    => 'post',
            ],
        ],
    ],
    'menu_order'            => 0,
    'position'              => 'normal',
    'style'                 => 'default',
    'label_placement'       => 'top',
    'instruction_placement' => 'label',
    'hide_on_screen'        => '',
] );