Saltar navegación
Actualizado
julio 23, 2024

ACF le permite registrar campos y grupos de campos utilizando código PHP. Para traducir estos campos con WPML, primero debe hacerlos traducibles.

Para registrar campos programáticamente, necesita utilizar la función acf_add_local_field_group. Luego, puede hacer que estos campos ACF sean traducibles especificando la configuración wpml_cf_preferences para cada campo en su código.

Hay cuatro valores numéricos que puede usar para wpml_cf_preferences:

  • Ignorar: 0
  • Copiar: 1
  • Traducir: 2
  • Copiar una vez: 3

A continuación, puede ver un ejemplo de cómo agregar la clave wpml_cf_preferences a un grupo de campos registrado programáticamente.

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'        => '',
] );