WPML
Status
Aberto
Relatado para
WPML Multilingual CMS 4.6.0
Tags de tópico
Compatibility, Feature request

Visão geral do problema

Se você estiver traduzindo seus campos personalizados nativos do WordPress, você pode precisar modificar suas preferências de tradução à medida que seu projeto evolui. No entanto, você precisará atualizar seu conteúdo para que esses campos personalizados fiquem disponíveis para tradução no Editor de tradução avançado.

Embora isso seja esperado, entendemos perfeitamente que não é desejável, especialmente se você tem um site grande e suas traduções estão em um estado avançado.

Observação: desde o Advanced Custom Field Multilingual 2.0, isso não se aplica mais aos campos do ACF, pois ele recalcula a assinatura de conteúdo para todos os posts e força a recriação de novos trabalhos de tradução.

Solução alternativa

Certifique-se de fazer um backup completo do seu site antes de prosseguir.

Nota: Lembre-se de que se você estiver usando nosso recurso Traduzir tudo, esses campos personalizados serão traduzidos automaticamente.

  1. Adicione o seguinte trecho de código ao seu arquivo functions.php, lembrando-se de substituir esses dois valores pelos seus.
    • Nome do tipo de post: post
    • Nome do campo personalizado: 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. Acesse o seu site e adicione isto ao seu URL: /?wpml_sync (ex.:
    https://example.com/?wpml_sync)
  3. Remova o código do seu arquivo.

Todos os problemas conhecidos →