Salta la navigazione
Aggiornato
Febbraio 5, 2025

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

C’è un problema noto con la registrazione dei campi di layout ACF (tipo i campi Repeater) usando PHP. Dai un’occhiata alla nostra soluzione disponibile per risolvere ‘sta grana.

Per registrare i campi in modo programmatico devi usare la funzione acf_add_local_field_group. Poi, puoi rendere ‘sti 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'        => '',
] );