WPML

wpml-config.xml 파일을 사용하여 사용자 정의 필드에 대한 번역 설정을 정의하는 방법을 알아보세요. 번역 및 복사와 같은 번역 옵션을 설정하고 추가 속성을 삽입하세요.

사용자 정의 필드에 대한 번역 옵션 설정

WPML은 사용자 정의 필드에 대해 네 가지 번역 옵션을 제공합니다.

작업설명ATE에 표시되나요?
번역사용자 정의 필드 값을 번역할 수 있도록 활성화합니다.예
복사 사용자 정의 필드 값을 기본 언어에서 보조 언어로 복사하고 두 언어를 동기화된 상태로 유지합니다.아니요
한 번 복사사용자 정의 필드 값을 기본 언어에서 보조 언어로 복사하지만 두 언어를 동기화된 상태로 유지하지는 않습니다.아니요
무시사용자 정의 필드 값이 보조 언어로 복사되지 않도록 합니다.아니요
언어 구성 파일에 사용자 정의 필드를 추가하는 예
<wpml-config>
  <custom-fields>
     <custom-field action="copy">quantity</custom-field>
     <custom-field action="translate">custom-title</custom-field>
     <custom-field action="copy">weight</custom-field>
     <custom-field action="copy-once">bg-color</custom-field>
     <custom-field action="translate">custom-description</custom-field>
     <custom-field action="ignore">date-added</custom-field>
  </custom-fields>
</wpml-config>

사용자 정의 필드에 속성 추가

레이블 및 그룹 속성

WPML을 사용하면 사용자 정의 필드 등록에 속성을 추가할 수 있습니다. 여기에는 다음이 포함됩니다.

  • style – 한 줄(line), 텍스트 영역(textarea) 또는 WYSIWYG(visual) 표시
  • label – 구성 파일에서 필드의 이름을 지정합니다. WPML은 레이블을 고급 번역 에디터로 전달하지 않으므로 번역가는 이를 볼 수 없습니다
  • group – 사용자 정의 필드가 속한 그룹을 지정합니다. 필드가 그룹에 있는 경우:
    • 등록된 모든 사용자 정의 필드는 사용자 정의 필드 아래에 함께 나열됩니다
    • 그룹 이름은 표시되지 않으며, 자체 섹션도 생성되지 않습니다
사용자 정의 필드 속성의 예
<wpml-config>
  <custom-fields>
    <custom-field action="translate" style="line" label="Title">custom-title</custom-field>
    <custom-field action="translate" style="textarea" label="Description">custom-description</custom-field>
    <custom-field action="translate" style="visual" label="Some content" group="Custom group">custom-wysiwyg</custom-field>
  </custom-fields>
</wpml-config>

고급 번역 에디터에서 세 개의 필드는 모두 등록된 순서대로 사용자 정의 필드 아래에 함께 표시됩니다:

고급 번역 에디터에 레이블이 있는 사용자 정의 필드
고급 번역 에디터의 사용자 정의 필드

Encode 속성

또한 선택적 encode 속성을 추가하여 기본값(인코딩 없음)에서 인코딩을 변경할 수 있습니다.  Encoding 속성은 다음 값을 허용합니다.

  • json
  • base64
  • urlencode

여러 인코딩을 사용하려면 값을 쉼표로 구분하세요.

인코딩을 변경하기 위해 언어 구성 파일에 사용자 정의 필드를 추가하는 예
<wpml-config>
  <custom-fields>
    <custom-field action="translate" encoding="json,base64">keywords</custom-field>
  </custom-fields>
</wpml-config>

사용자 정의 필드에 링크가 포함된 경우 translate_link_target 속성을 사용하여 WPML이 사용자 정의 필드의 링크를 확인하고 조정하도록 강제할 수 있습니다. 이 속성이 작동하려면 링크가 <a> 태그로 래핑되어 있는지 확인하세요.

WPML이 사용자 정의 필드의 링크를 조정하도록 강제하는 예
<wpml-config>
  <custom-fields>
    <custom-field action="translate" translate_link_target="1">name_of_the_acf_field</custom-field>
  </custom-fields>
</wpml-config>

WPML은 기본적으로 사용자 정의 필드의 모든 하위 키를 번역합니다. 이를 우회하려면 번역할 하위 키를 지정하세요.

사용자 정의 필드의 하위 키 번역을 위한 코드 예
<wpml-config>
  <custom-fields>
    <custom-field action="translate">with_attributes</custom-field>
    <custom-field action="translate">with_deep_attributes</custom-field>
    <custom-field action="translate">no_attributes</custom-field>
  </custom-fields>
  <custom-fields-texts>
    <key name="with_attributes">
        <key name="attribute1" />
        <key name="attribute2" />
    </key>
    <key name="with_deep_attributes">
        <key name="attribute1" />
        <key name="attribute2">
          <key name="level1">
          <key name="level2">
          </key>
          </key>
        </key>
    </key>
  </custom-fields-texts>
</wpml-config>

와일드카드

관리자 텍스트에 사용되는 것과 동일한 방식으로 와일드카드를 사용할 수도 있습니다.

  • 다음 코드를 사용하여 title-로 시작하는 모든 하위 필드를 일치시킵니다.
    <key name="title-*" />
  • 모든 하위 필드를 일치시키며, 일반적으로 다음 코드를 사용하여 배열 인덱스를 일치시키는 데 사용됩니다.
    <key name="*" />
  • [{"title":"First title"},{"title":"Second title"}]을 가져오려면 다음 코드를 사용하세요.
와일드카드가 포함된 구성 파일의 예
<wpml-config>
  <custom-fields-texts>
    <key name="key-name">
    <key name="*">
    <key name="title" />
    </key>
    </key>
  </custom-fields-texts>
</wpml-config>

글 사용자 정의 필드의 ID 자동 변환

WPML 4.8부터 글 사용자 정의 필드에 있는 ID를 선언할 수 있습니다. WPML은 프런트엔드에서 ID를 번역된 버전으로 바꿉니다.

번역 옵션이 복사인 경우(즉, <custom-field action="copy">를 사용할 때)에만 이 작업을 수행할 수 있습니다.

wpml-config.xml 파일의 custom-fields에서 다음을 사용하세요.

  • 참조되는 객체를 명시하는 type (예: post-ids)
  • 글 유형의 슬러그를 선언하려는 경우 sub-type (선택 사항)

WPML은 다음 형식의 ID를 감지하고 변환할 수 있습니다.

  • 단일 ID(예: 123)
  • 쉼표로 구분된 ID 목록(예: “123,456,789”)
  • ID 배열(및 인코딩된 배열)(예: [123,456,789])
사용자 정의 필드에서 ID를 선언하는 예
<custom-fields>
	<custom-field action="copy" type="post-ids" sub-type="product">custom_field_with_id</custom-field>
</custom-fields>

ID가 custom-fields-texts 섹션의 하위 수준에 중첩된 경우, WPML은 필드 번역 설정(복사, 번역 등)에 관계없이 이를 감지하고 변환합니다.

중첩된 사용자 정의 필드에서 ID를 선언하는 예
<wpml-config>
  <custom-fields-texts>
    <key name="custom_field_with_nested_ids">
      <key name="custom_field_nested_key_with_ids" type="post-ids" sub-type="product" />
      <key name="custom_field_nested_key_with_ids_with_wildcard_*" type="post-ids" sub-type="product" />
      <key name="custom_field_nested_key_with_subkey">
        <key name="custom_field_nested_key_with_subkey_with_ids" type="post-ids" sub-type="product" />
      </key>
    </key>
  </custom-fields-texts>
</wpml-config>

동일한 type 및 sub-type 구문을 사용하여 관리자 텍스트에서 ID를 선언할 수 있습니다(wp_options 테이블).

사용자 정의 택소노미 용어 필드에 대한 번역 옵션 설정

택소노미 용어의 사용자 정의 필드를 번역하려면 필드 이름과 WPML이 수행해야 할 작업(translate, copy, copy-once, ignore)을 지정해야 합니다.

이 마크업을 wpml-config 태그 아래에 중첩하세요.

사용자 정의 용어 필드에 대해 다음 번역 옵션을 설정할 수 있습니다.

  • translate: 사용자가 사용자 정의 용어의 값을 번역할 수 있도록 합니다. 이러한 용어는 번역 에디터 화면에 표시되며 수동 또는 자동으로 번역하거나 다른 번역가에게 보낼 수 있습니다.
  • copy: 기본 언어의 사용자 정의 용어 값을 보조 언어로 복사합니다. 즉, 기본 언어의 사용자 정의 용어 값을 업데이트하면 항상 보조 언어로 복사됩니다. copy로 설정된 사용자 정의 용어는 번역 에디터 화면에 표시되지 않습니다.
  • copy-once: 초기 번역 프로세스에서 사용자 정의 용어의 값을 보조 언어로 복사합니다. copy-once 작업을 사용하는 사용자 정의 용어는 번역 에디터 화면에 나타나지 않습니다. 그러나 사용자는 글 편집 화면을 사용하여 보조 언어의 사용자 정의 용어 값을 기본 언어와 다르게 변경할 수 있습니다.
  • ignore: 사용자 정의 용어가 보조 언어로 복사되지 않도록 합니다.
언어 구성 파일에 사용자 정의 용어를 추가하는 예
<wpml-config>
  <custom-term-fields>
    <custom-term-field action="copy">term_meta_A</custom-term-field>
    <custom-term-field action="translate">term_meta_B</custom-term-field>
    <custom-term-field action="ignore">term_meta_C</custom-term-field>
    <custom-term-field action="copy-once">term_meta_D</custom-term-field>
  </custom-term-fields>
</wpml-config>

택소노미 용어 사용자 정의 필드에 저장된 ID 자동 변환

필드가 복사로 설정된 경우(즉, <custom-term-field action="copy">를 사용할 때)에만 이 작업을 수행할 수 있습니다.

사용자 정의 글 필드와 마찬가지로 택소노미 사용자 정의 필드에 있는 객체 ID를 선언할 수 있습니다. 그러면 WPML이 이를 번역된 버전으로 자동 변환합니다.

custom-term-fields 섹션에서 다음을 사용하세요.

  • 참조되는 객체를 명시하는 type (예: post-ids 또는 taxonomy-ids)
  • 특정 엔티티를 선언하려는 경우 sub-type (선택 사항)
사용자 정의 용어 필드에서 ID를 선언하는 예
<wpml-config>
  <custom-term-fields>
    <custom-term-field action="copy" type="post-ids" sub-type="product">custom_term_field_with_id</custom-term-field>
  </custom-term-fields>
</wpml-config>

추가 리소스

wpml-config.xml 파일에 대해 자세히 알아보려면 언어 구성 파일 가이드를 방문하세요.

wpml-config.xml 파일을 사용하여 다른 요소를 사용자 정의하려면 다음 추가 가이드를 방문하세요.

작성자:Amir