WPML
상태
미해결
보고된 제품
WPML Multilingual CMS 4.6.0
주제 태그
Compatibility, Feature request

문제 개요

WordPress 기본 사용자 정의 필드를 번역하는 경우 프로젝트가 진행됨에 따라 번역 기본 설정을 수정해야 할 수 있습니다. 하지만 고급 번역 에디터에서 해당 사용자 정의 필드를 번역할 수 있게 하려면 콘텐츠를 업데이트해야 합니다.

이는 예상되는 일이지만, 특히 대규모 사이트를 운영 중이고 번역이 상당히 진행된 상태라면 이러한 과정이 번거로울 수 있다는 점을 충분히 이해합니다.

참고: Advanced Custom Field Multilingual 2.0부터는 모든 글의 콘텐츠 서명을 다시 계산하고 새로운 번역 작업을 강제로 다시 생성하므로 ACF 필드에는 더 이상 이 내용이 적용되지 않습니다.

임시 해결 방법

진행하기 전에 반드시 사이트를 전체 백업하세요.

참고: 모든 항목 번역 기능을 사용하는 경우 해당 사용자 정의 필드는 자동으로 번역됩니다.

  1. functions.php 파일에 다음 스니펫을 추가하세요. 이때 다음 두 값을 사용자의 환경에 맞게 수정해야 합니다.
    • 글 유형 이름: 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. 파일에서 코드를 제거하세요.

알려진 모든 문제 →