WPML

Tìm hiểu cách xác định cài đặt dịch cho các trường tùy chỉnh bằng tệp wpml-config.xml. Thiết lập các tùy chọn dịch như dịch và sao chép, đồng thời chèn các thuộc tính bổ sung.

Thiết lập tùy chọn dịch cho trường tùy chỉnh

WPML cung cấp bốn tùy chọn dịch cho các trường tùy chỉnh:

Hành độngMiêu tảHiển thị trong ATE?
DịchBật giá trị trường tùy chỉnh để dịch
Sao chép Sao chép giá trị trường tùy chỉnh từ ngôn ngữ mặc định sang ngôn ngữ phụ trong khi vẫn giữ đồng bộ cả haiKhông
Sao chép một lầnSao chép giá trị trường tùy chỉnh từ ngôn ngữ mặc định sang ngôn ngữ phụ mà không giữ đồng bộ cả haiKhông
Bỏ quaTránh sao chép giá trị trường tùy chỉnh sang ngôn ngữ phụKhông
Ví dụ về việc thêm trường tùy chỉnh vào tệp cấu hình ngôn ngữ
<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>

Thêm thuộc tính cho trường tùy chỉnh

Thuộc tính nhãn và nhóm

WPML cho phép bạn thêm các thuộc tính xuất hiện trong Trình biên tập dịch thuật nâng cao. Bao gồm:

  • style – hiển thị một dòng (line), vùng văn bản (textarea), hoặc WYSIWYG (visual)
  • label – hiển thị nhãn bên cạnh trường
  • group – chỉ định nhóm mà trường tùy chỉnh thuộc về. Khi một trường nằm trong một nhóm:
    • Trường này bị xóa khỏi phần trường tùy chỉnh
    • Trường này được thêm vào phần của nhóm liên quan
Ví dụ về các thuộc tính của trường tùy chỉnh
<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>

Đây là giao diện của các thuộc tính này trong Trình biên tập dịch thuật nâng cao:

Các trường tùy chỉnh có nhãn trong Trình biên tập dịch thuật nâng cao
Các trường tùy chỉnh có nhãn trong Trình biên tập dịch thuật nâng cao

Thuộc tính mã hóa

Bạn cũng có thể thêm các thuộc tính encode tùy chọn để thay đổi mã hóa từ giá trị mặc định (không mã hóa).  Thuộc tính Encoding chấp nhận các giá trị sau:

  • json
  • base64
  • urlencode

Nếu bạn muốn sử dụng nhiều mã hóa, hãy phân tách các giá trị bằng dấu phẩy:

Ví dụ về việc thêm trường tùy chỉnh vào tệp cấu hình ngôn ngữ để thay đổi mã hóa
<wpml-config>
  <custom-fields>
    <custom-field action="translate" encoding="json,base64">keywords</custom-field>
  </custom-fields>
</wpml-config>

Nếu trường tùy chỉnh của bạn chứa một liên kết, bạn có thể sử dụng thuộc tính translate_link_target để buộc WPML kiểm tra và điều chỉnh các liên kết trong trường tùy chỉnh. Để thuộc tính này hoạt động, hãy đảm bảo liên kết được bọc trong các thẻ <a>.

Ví dụ về việc buộc WPML điều chỉnh các liên kết trong một trường tùy chỉnh
<wpml-config>
  <custom-fields>
    <custom-field action="translate" translate_link_target="1">name_of_the_acf_field</custom-field>
  </custom-fields>
</wpml-config>

Theo mặc định, WPML dịch tất cả các khóa phụ trong các trường tùy chỉnh. Để bỏ qua điều này, hãy chỉ định những khóa phụ nào cần được dịch.

Ví dụ về mã để dịch các khóa phụ trong trường tùy chỉnh
<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>

Ký tự đại diện

Bạn cũng có thể sử dụng ký tự đại diện theo cách tương tự như cách chúng được sử dụng cho Văn bản quản trị:

  • Khớp tất cả các trường phụ bắt đầu bằng title- bằng cách sử dụng mã:
    <key name="title-*" />
  • Khớp tất cả các trường phụ và thường được sử dụng để khớp một chỉ mục mảng bằng cách sử dụng mã:
    <key name="*" />
  • Để lấy [{"title":"First title"},{"title":"Second title"}] sử dụng mã
Ví dụ về tệp cấu hình có ký tự đại diện
<wpml-config>
  <custom-fields-texts>
    <key name="key-name">
    <key name="*">
    <key name="title" />
    </key>
    </key>
  </custom-fields-texts>
</wpml-config>

Tự động chuyển đổi ID trong trường tùy chỉnh của bài viết

Kể từ WPML 4.8, bạn có thể khai báo các ID nằm trong trường tùy chỉnh của bài viết. WPML thay thế các ID bằng các phiên bản đã dịch của chúng trên frontend.

Bạn chỉ có thể làm điều này khi tùy chọn dịch là Sao chép (tức là khi sử dụng <custom-field action="copy">).

Trong custom-fields của tệp wpml-config.xml, hãy sử dụng:

  • type để nêu rõ đối tượng nào được tham chiếu, ví dụ: post-ids
  • sub-type (tùy chọn) khi bạn muốn khai báo slug của một loại bài viết

WPML có thể phát hiện và chuyển đổi ID ở các định dạng sau:

  • Một ID duy nhất (ví dụ: 123)
  • Danh sách các ID được phân tách bằng dấu phẩy (ví dụ: “123,456,789”)
  • Một mảng (và mảng được mã hóa) các ID (ví dụ: [123,456,789])
Ví dụ về việc khai báo ID trong trường tùy chỉnh
<custom-fields>
	<custom-field action="copy" type="post-ids" sub-type="product">custom_field_with_id</custom-field>
</custom-fields>

Khi các ID được lồng trong phần custom-fields-texts ở cấp độ phụ, WPML sẽ phát hiện và chuyển đổi chúng bất kể cài đặt dịch của trường (sao chép, dịch, v.v.).

Ví dụ về việc khai báo ID trong các trường tùy chỉnh lồng nhau
<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>

Sử dụng cùng cú pháp typesub-type, bạn có thể khai báo ID trong văn bản quản trị (bảng wp_options).

Thiết lập tùy chọn dịch cho trường thuật ngữ phân loại tùy chỉnh

Để dịch các trường tùy chỉnh của các thuật ngữ phân loại, bạn cần chỉ định tên trường và hành động mà WPML nên thực hiện: translate, copy, copy-once, ignore.

Lồng đánh dấu này dưới thẻ wpml-config.

Bạn có thể thiết lập các tùy chọn dịch sau cho các trường thuật ngữ tùy chỉnh:

  • translate: cho phép người dùng của bạn dịch giá trị của thuật ngữ tùy chỉnh. Các thuật ngữ này xuất hiện trên màn hình Trình biên tập dịch thuật và có thể được dịch thủ công hoặc tự động hoặc gửi cho những người dịch khác.
  • copy: sao chép giá trị thuật ngữ tùy chỉnh của ngôn ngữ mặc định sang các ngôn ngữ phụ. Điều này có nghĩa là việc cập nhật giá trị thuật ngữ tùy chỉnh của ngôn ngữ mặc định sẽ luôn được sao chép sang ngôn ngữ phụ. Các thuật ngữ tùy chỉnh được đặt thành copy không hiển thị trên màn hình Trình biên tập dịch thuật.
  • copy-once: sao chép giá trị của thuật ngữ tùy chỉnh sang ngôn ngữ phụ trong quá trình dịch ban đầu. Các thuật ngữ tùy chỉnh sử dụng hành động copy-once sẽ không xuất hiện trên màn hình Trình biên tập dịch thuật. Tuy nhiên, người dùng có thể thay đổi giá trị thuật ngữ tùy chỉnh của ngôn ngữ phụ để khác với ngôn ngữ mặc định bằng cách sử dụng màn hình chỉnh sửa bài viết.
  • ignore: loại bỏ thuật ngữ tùy chỉnh khỏi việc được sao chép sang ngôn ngữ phụ.
Ví dụ về việc thêm thuật ngữ tùy chỉnh vào tệp cấu hình ngôn ngữ
<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>

Tự động chuyển đổi ID được lưu trữ trong trường tùy chỉnh của thuật ngữ phân loại

Bạn chỉ có thể làm điều này khi trường được đặt thành Sao chép (tức là khi sử dụng <custom-term-field action="copy">).

Giống như với các trường bài viết tùy chỉnh, bạn có thể khai báo ID đối tượng được lưu trong các trường phân loại tùy chỉnh. Sau đó, WPML sẽ tự động chuyển đổi chúng sang các phiên bản đã dịch của chúng.

Trong phần custom-term-fields, hãy sử dụng:

  • type để nêu rõ đối tượng nào được tham chiếu, ví dụ: post-ids hoặc taxonomy-ids
  • sub-type (tùy chọn) khi bạn muốn khai báo thực thể cụ thể
Ví dụ về việc khai báo ID trong các trường thuật ngữ tùy chỉnh
<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>

Tài nguyên bổ sung

Để tìm hiểu thêm về tệp wpml-config.xml, hãy truy cập hướng dẫn về Tệp cấu hình ngôn ngữ.

Để tùy chỉnh các thành phần khác bằng tệp wpml-config.xml, hãy truy cập các hướng dẫn bổ sung của chúng tôi:

Được viết bởi Amir · Cập nhật lần cuối vào 29 tháng 1 năm 2026