WPML

問題の概要

WordPressネイティブのカスタムフィールドを翻訳している場合、プロジェクトの進行に伴って翻訳設定を変更する必要が生じることがあります。ただし、これらのカスタムフィールドを高度な翻訳エディタで翻訳できるようにするには、コンテンツを更新する必要があります。

これは想定される動作ですが、特に大規模なサイトで翻訳がかなり進んでいる場合には、望ましくないことであると十分に理解しています。

注意:Advanced Custom Field Multilingual 2.0以降では、すべての投稿のコンテンツシグネチャを再計算し、新しい翻訳ジョブを強制的に再作成するため、ACFフィールドについてはこの限りではありません。

回避策

この問題は修正されました。 最新バージョンにアップデートするとお使いのサイトで問題が解決するため、この回避策はまだアップデートできない場合にのみ必要です。

続行する前に、必ずサイトの完全なバックアップを作成してください。

注意: すべてを翻訳する機能を使用している場合、これらのカスタムフィールドは自動翻訳されます。

  1. functions.phpファイルに以下のスニペットを追加します。その際、ご自身の環境に合わせて以下の2つの値を変更してください。
    • 投稿タイプ名: post
    • カスタムフィールド名: 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. ウェブサイトにアクセスし、URLに/?wpml_syncを追加します(例:
    https://example.com/?wpml_sync)。
  3. ファイルからコードを削除します。

すべての既知の問題

まだこの問題が発生しますか?

アップデートしても問題が解決しない場合は、サポートのご質問をお寄せください。一緒に調査いたします。