Sauter la navigation
Mis à jour
juillet 23, 2024

ACF vous permet d’enregistrer des champs et des groupes de champs en utilisant du code PHP. Pour traduire ces champs avec WPML, vous devez d’abord les rendre traduisibles.

Pour enregistrer des champs de manière programmatique, vous devez utiliser la fonction acf_add_local_field_group. Ensuite, vous pouvez rendre ces champs ACF traduisibles en spécifiant le paramètre wpml_cf_preferences pour chaque champ dans votre code.

Il y a quatre valeurs numériques que vous pouvez utiliser pour wpml_cf_preferences :

  • Ignorer : 0
  • Copier : 1
  • Traduire : 2
  • Copier une fois : 3

Ci-dessous, vous pouvez voir un exemple d’ajout de la clé wpml_cf_preferences à un groupe de champs enregistré de manière programmatique.

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