Pular a navegação
Atualizado
julho 29, 2024

O ACF permite registrar campos e grupos de campos usando código PHP. Para traduzir esses campos com WPML, primeiro é necessário torná-los traduzíveis.

Para registrar campos programaticamente, é necessário usar a função acf_add_local_field_group. Em seguida, você pode 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'        => '',
] );