WPML
Stato
Aperto
Segnalato per
WPML Multilingual CMS 4.6.0
Tag dell’argomento
Compatibility, Feature request

Panoramica del problema

Se stai traducendo i tuoi campi personalizzati nativi di WordPress, potresti dover modificare le tue preferenze di traduzione man mano che il progetto si evolve. Tuttavia, dovrai aggiornare il tuo contenuto per rendere disponibili quei campi personalizzati per la traduzione nell’Editor di traduzione avanzato.

Sebbene sia un comportamento previsto, comprendiamo perfettamente che non sia auspicabile, in particolare se hai un sito di grandi dimensioni e le tue traduzioni si trovano in uno stato avanzato.

Nota: a partire da Advanced Custom Field Multilingual 2.0, questo non vale più per i campi ACF, poiché ricalcola la firma del contenuto per tutti gli articoli e forza la creazione di nuovi lavori di traduzione.

Soluzione alternativa

Assicurati di eseguire un backup completo del tuo sito prima di procedere.

Nota: tieni presente che se utilizzi la nostra funzionalità Traduci tutto, quei campi personalizzati saranno tradotti automaticamente.

  1. Aggiungi il seguente snippet nel tuo file functions.php, ricordandoti di modificare questi due valori con i tuoi.
    • Nome del tipo di post: post
    • Nome del campo personalizzato: 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. Visita il tuo sito web e aggiungi questo al tuo URL: /?wpml_sync (ad es.
    https://example.com/?wpml_sync)
  3. Rimuovi il codice dal tuo file.

Tutti i problemi noti →