WPML
Statut
Ouvert
Signalé pour
WPML Multilingual CMS 4.6.0
Étiquettes de sujet
Compatibility, Feature request

Aperçu de l’anomalie

Si vous traduisez vos champs personnalisés natifs de WordPress, vous devrez peut-être modifier vos préférences de traduction au fur et à mesure de l’évolution de votre projet. Cependant, vous devrez mettre à jour votre contenu pour que ces champs personnalisés soient disponibles pour la traduction dans l’Éditeur de traduction avancé.

Bien que ce soit le comportement attendu, nous comprenons tout à fait que cela ne soit pas souhaitable, en particulier si vous possédez un grand site et que vos traductions sont à un stade avancé.

Remarque : depuis Advanced Custom Field Multilingual 2.0, ce n’est plus le cas pour les champs ACF, car il recalcule la signature du contenu pour tous les articles et oblige à recréer de nouveaux travaux de traduction.

Solution de contournement

Veuillez effectuer une sauvegarde complète de votre site avant de continuer.

Remarque : N’oubliez pas que si vous utilisez notre fonctionnalité Tout traduire, ces champs personnalisés seront traduits automatiquement.

  1. Ajoutez l’extrait suivant dans votre fichier functions.php en veillant à remplacer ces deux valeurs par les vôtres.
    • Nom du type de publication : post
    • Nom du champ personnalisé : simple_field
      add_action('wp', function(){
          $config = [
              'post_type' => 'post', //Post type slug
              'meta_key_name' => 'simple_field' //Custom field key
          ];
         
          if (!isset($_GET['wpml_sync'])) {
              return;
          }
         
          set_time_limit(0);
          do_action('wpml_switch_language', apply_filters( 'wpml_default_language', null ));
          $all_posts = get_posts([
              'post_type' => $config['post_type'],
              'posts_per_page' => -1,
              'suppress_filters' => false
          ]);
         
          if (empty($all_posts)) {
              return;
          }
         
          foreach ($all_posts as $post) {
              do_action( 'wpml_sync_custom_field', $post->ID, $config['meta_key_name'] );
          }
         
          wp_die('Done!');
      });
  2. Visitez votre site et ajoutez ceci à votre URL : /?wpml_sync (par ex.
    https://example.com/?wpml_sync)
  3. Supprimez le code de votre fichier.

Toutes les anomalies connues →