Salta la navigazione
Aggiornato
Luglio 26, 2024

ACF ti permette di registrare campi e gruppi di campi usando il codice PHP. Per tradurre questi campi con WPML, devi prima renderli traducibili.

Per registrare campi programmaticamente devi usare la funzione acf_add_local_field_group. Poi, puoi rendere questi campi ACF traducibili specificando l’impostazione wpml_cf_preferences per ogni campo nel tuo codice.

Ci sono quattro valori numerici che puoi usare per wpml_cf_preferences:

  • Ignora: 0
  • Copia: 1
  • Traduci: 2
  • Copia una volta: 3

Qui sotto puoi vedere un esempio di aggiunta della chiave wpml_cf_preferences a un gruppo di campi registrato programmaticamente.

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