Sauter la navigation
Mis à jour
février 5, 2025

ACF vous permet d’enregistrer des champs et des groupes de champs en utilisant le code PHP. Pour traduire ces champs avec WPML, il est nécessaire en premier lieu de les rendre traduisibles.

Il existe un problème connu concernant l’enregistrement des champs de mise en page ACF (tels que les champs Repeater) utilisant PHP. Veuillez consulter notre solution de contournement disponible pour résoudre ce problème.

Pour enregistrer programmatiquement des champs, il est nécessaire d’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'        => '',
] );