WPML

Узнайте, как задать настройки перевода для произвольных полей с помощью файла wpml-config.xml. Задайте параметры перевода, такие как translate и copy, и добавьте дополнительные атрибуты.

Настройка параметров перевода для произвольных полей

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>

Добавление атрибутов для произвольных полей

Атрибуты label и group

WPML позволяет Вам добавлять атрибуты, которые отображаются в Расширенном редакторе переводов. К ним относятся:

  • style — отображение одной строки (line), текстовой области (textarea) или WYSIWYG-редактора (visual)
  • label — отображает метку (label) рядом с полем
  • 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, чтобы изменить кодировку со значения по умолчанию (no — без кодировки).  Атрибут 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 на их переведенные версии на фронтенде.

Вы можете сделать это только тогда, когда параметром перевода является Copy (то есть при использовании <custom-field action="copy">).

В разделе custom-fields Вашего файла wpml-config.xml используйте:

  • 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 обнаружит и преобразует их независимо от настройки перевода поля (copy, translate и т. д.).

Пример объявления 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, хранящихся в произвольных полях терминов таксономии

Вы можете сделать это только тогда, когда для поля задано значение Copy (то есть при использовании <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 · Последнее обновление: 29 января 2026