WPML

Чтобы зарегистрировать пользовательские виджеты конструкторов страниц для перевода, Вам необходимо использовать файл wpml-config.xml. Изучите это руководство, чтобы узнать, как им пользоваться.

Это руководство предназначено для разработчиков, которые создают темы оформления и плагины или добавляют на свой сайт пользовательский код конструкторов страниц.

Если Вы используете сторонний конструктор страниц и не можете перевести пользовательские виджеты на своем сайте, обратитесь в службу поддержки WPML.

Конструкторы страниц, такие как Elementor, Beaver Builder, SiteOrigin и Cornerstone, поставляются с набором собственных виджетов. Эти стандартные виджеты без проблем работают с WPML.

Иногда Вы можете создавать пользовательские виджеты, предназначенные для использования с этими или другими конструкторами страниц.

Пользовательский виджет — это любой уникальный дополнительный виджет, который не входит в комплект конструктора страниц. Они могут быть созданы Вашей командой разработчиков, сторонними разработчиками или поставляться с другими плагинами и темами оформления.

Пользовательским виджетом также является любой виджет из плагинов-дополнений, разработанных сторонними разработчиками специально для конструктора страниц, например Elementor.

Когда мне нужно регистрировать пользовательские виджеты для перевода?

Вам необходимо зарегистрировать свой пользовательский виджет для перевода:

  • Если это виджет, изначально не предоставляемый конструктором страниц
  • Если Вы создали и добавили его через другой плагин или тему оформления
  • Если он разработан для Ваших сайтов WordPress или определенного конструктора страниц Вашей командой или сторонними разработчиками

Раньше самым распространенным способом регистрации пользовательских виджетов для перевода было использование пользовательского PHP-кода. Теперь Вы можете легко зарегистрировать виджет для перевода с помощью wpml-config.xml, конфигурационного файла WPML.

Регистрация пользовательских виджетов Elementor для перевода в WPML 4.9+

В WPML 4.9 и более новых версиях WPML автоматически распознает пользовательские виджеты Elementor и делает их переводимыми. Однако он может зарегистрировать строки, которые Вы не хотите переводить.

Поэтому мы настоятельно рекомендуем Вам по-прежнему вручную настраивать файл wpml-config.xml, как описано на этой странице. Это даст Вам возможность контролировать, какие поля будут переводимыми.

Как зарегистрировать пользовательские виджеты Elementor и блоки Gutenberg для перевода с помощью плагина Multilingual Tools

Наш плагин Multilingual Tools включает в себя WPML – Config Generator для Elementor и блоков Gutenberg. Эта функция позволяет Вам добавлять на страницу любые пользовательские виджеты Elementor или блоки Gutenberg, которые Вы хотите зарегистрировать для перевода. Затем она автоматически генерирует первую версию необходимого Вам XML-кода.

Узнайте, как зарегистрировать пользовательские виджеты Elementor для перевода и как сделать блоки Gutenberg переводимыми.

Как найти информацию о регистрации виджета

Чтобы иметь возможность зарегистрировать пользовательский виджет в файле wpml-config.xml , Вам сначала нужно найти о нем некоторую базовую информацию.

Вы можете легко получить эту информацию с помощью такого плагина, как JSM Show Post Metadata. Этот плагин показывает метаданные записи и их десериализованные значения в метабоксе внизу страниц редактирования записей.

В качестве альтернативы Вы можете использовать следующие шаги для получения этой информации:

  1. Перейдите на страницу WPMLНастройки, прокрутите до раздела Перевод пользовательских полей и нажмите ссылку Показать системное поле .
  2. Установите для произвольного поля _elementor_data значение Перевести.
  3. Создайте новую страницу и добавьте только тот виджет Elementor, который Вы хотите зарегистрировать. Сохраните страницу.
  4. Перейдите в WPMLНастройки и в разделе Редактор переводов временно активируйте параметр Классический редактор переводов.
  5. Попробуйте перевести страницу, созданную на шаге 3, с помощью Классического редактора переводов, и Вы заметите сериализованный массив, подобный этому:
Копирование данных виджета в Классическом редакторе
Сериализованный массив виджета Elementor, отображаемый в Классическом редакторе переводов WPML
  1. Скопируйте содержимое сериализованного массива.
  2. Используйте предпочитаемый Вами инструмент десериализации, чтобы лучше видеть, как виджет выводит свой контент. В нашем случае мы использовали сайт Unserialize.

Вот объяснение содержимого массива, которое Вы увидите:

  • [widgetType] содержит имя, вставленное в атрибут name тега виджета.
  • Сами поля будут находиться внутри массива, и Вы можете найти их с помощью поиска [0], который выдаст содержимое первого элемента массива.
  • Значением field будет имя внутри скобок, которое будет содержать имя поля. Например: [title] => this is a field title. В данном случае нужный Вам текст — это «title».
  • «Items of» получит свое значение от элемента, создающего массив. Например: [contents]=> array. В данном случае нужный Вам текст — это «contents».

Как только у Вас будет эта информация, Вы можете переходить непосредственно к регистрации виджета для перевода.

Регистрация простых виджетов

В следующем видеоролике показан пример регистрации простого виджета Elementor:

Следующий пример иллюстрирует, как зарегистрировать простой виджет. Простой виджет в данном случае означает, что виджет не имеет повторяющихся полей.

<wpml-config>
	<elementor-widgets>
		<widget name="heading">
			<conditions>
				<condition key="widgetType">heading</condition>
			</conditions>
			<fields>
				<field type="Heading" editor_type="LINE">title</field>
				<field type="Heading: Link URL" editor_type="LINK">link>url</field>
			</fields>
		</widget>
	</elementor-widgets>
</wpml-config>

Давайте разберем структуру приведенного примера:

  1. Начните с тега <elementor-widgets>. Он сообщает WPML, виджеты какого конструктора страниц Вы собираетесь регистрировать. Это может быть один из следующих вариантов:
    • <elementor-widgets>: это нужно использовать, если Вы используете Elementor, Elementor PRO или любое другое дополнение Elementor.
    • <beaver-builder-widgets>: это нужно использовать, если Вы используете Beaver Builder Lite, премиальный Beaver Builder или любое другое дополнение Beaver Builder.
    • <siteorigin-widgets>: это нужно использовать, если Вы используете конструктор страниц SiteOrigin.
    • <cornerstone-widgets>: а это нужно использовать для конструктора страниц Cornerstone, который поставляется с темой оформления X или темой оформления PRO.
  2. Добавьте Ваши виджеты:
    • <widget name="widget_name">, где widget_name — это имя, используемое для регистрации виджета в конструкторе страниц.
    • <conditions> (необязательно): в условиях Вы добавляете условие с ключом, равным имени виджета. Это можно использовать, когда имя виджета отличается от ключа виджета в данных, но обычно в этом нет необходимости.
  1. Добавьте поля виджетов, обернув их в тег <fields>:
    • field: ID поля. Это тот же ID, который используется при добавлении элемента управления с помощью функции Control_stack::add_control.
    • type (необязательно): тип поля. Это текст, отображаемый в Расширенном редакторе переводов или Классическом редакторе переводов WPML, чтобы помочь переводчику понять, какое поле переводится.
    • editor_type (необязательно): это тип текстового поля, используемого в Классическом редакторе переводов WPML. Допустимые значения: LINE, AREA, LINK и VISUAL. Если отсутствует, по умолчанию используется LINE.
    • key_of (необязательно): используется только для тегов <field>, у которых есть массив внутри тега <fields-in-item>.

Вы можете использовать эти элементы для регистрации простого виджета с любым количеством полей.

Регистрация полей с ID записей или таксономий

В разделе выше Вы узнали, что атрибут type обычно используется для отображения описательного текста в Редакторе переводов.

Однако, когда поля Вашего виджета хранят ID записей или ID таксономий (например, выбранные изображения, похожие записи или выбранные категории), Вы используете специальные значения, которые запускают автоматическое преобразование:

  • type="post-ids" — для полей, содержащих ID записей
  • type="term-ids" — для полей, содержащих ID таксономий/элементов

Когда Вы используете эти значения types:

  • Поле не появится в редакторе переводов
  • WPML автоматически преобразует ID, чтобы они указывали на соответствующий переведенный контент
  • Поддерживаются как одиночные ID, так и списки ID, разделенные запятыми

Пример:

<wpml-config>
    <elementor-widgets>
        <widget name="the-widget-name">
            <fields>
                <field type="post-ids" sub-type="attachment">image_id</field>
                <field type="post-ids" sub-type="post">selected_posts</field>
                <field type="term-ids" sub-type="category">category_filter</field>
            </fields>
        </widget>
    </elementor-widgets>
</wpml-config>

В этом примере необязательный атрибут sub-type указывает точный тип записи или таксономию, которые преобразуются:

  • Для type="post-ids": используйте sub-type="attachment", sub-type="post", sub-type="page" или слаг Вашего произвольного типа записи
  • Для type="term-ids": используйте sub-type="category", sub-type="post_tag" или слаг Вашей произвольной таксономии

Добавление sub-type повышает производительность, позволяя избежать дополнительных запросов к базе данных для определения типа контента.

Дополнительные примеры см. в конфигурационном файле Elementor, выполнив поиск по post-ids.

Регистрация виджетов с повторяющимися полями

В следующем видеоролике показан пример регистрации расширенного виджета Elementor с повторяющимися полями:

A hotspot widget's fields in the Advanced Translation Editor
A hotspot widget's fields in the Advanced Translation Editor

Для виджетов, имеющих повторяющиеся поля, Вам необходимо обернуть поля в тег <fields-in-item items_of="tabs"> (где tabs — это имя виджета с повторяющимися полями). Ознакомьтесь с этим примером:

<widget name="accordion">
	<fields-in-item items_of="tabs">
		<field type="Accordion: Title" editor_type="LINE">tab_title</field>
		<field type="Accordion: Content" editor_type="VISUAL">tab_content</field>
	</fields-in-item>
</widget>

В некоторых случаях виджет может иметь несколько повторяющихся полей. В качестве примера рассмотрим следующую структуру данных виджета Table из плагина Ultimate Addons for Elementor:

Структура данных виджета Table из Ultimate Addons for Elementor

Чтобы зарегистрировать этот виджет, ознакомьтесь со следующим примером:

<widget name="uael-table">
	<fields-in-item items_of="table_content">
		<field type="The Cell text" editor_type="LINE">cell_text</field>
	</fields-in-item>
	<fields-in-item items_of="table_headings">
		<field type="The Heading text" editor_type="LINE">heading_text</field>
	</fields-in-item>
</widget>

Регистрация виджетов как с простыми, так и с повторяющимися полями

Обратите внимание, что виджеты могут иметь оба типа: fields и fields-in-item. Ознакомьтесь с этим примером для виджета, который использует оба типа:

<widget name="price-table">
	<fields>
		<field type="Price Table: Heading" editor_type="LINE">heading</field>
		<!-- ... -->
	</fields>
	<fields-in-item items_of="features_list">
		<field type="Price table: text" editor_type="LINE">item_text</field>
	</fields-in-item>
</widget>

Группировка полей для лучшей организации

Чтобы улучшить ясность и организацию Вашей конфигурации XML, Вы можете добавить к меткам полей префикс с именем группы. Рассмотрим этот пример виджета hotspot:

<widget name="hotspot">
    <fields-in-item items_of="hotspot">
        <field type="Hotspot: Label">hotspot_label</field>
        <field type="Hotspot: URL" key_of="hotspot_link">url</field>
        <field type="Hotspot: Content" editor_type="VISUAL">hotspot_tooltip_content</field>
    </fields-in-item>
</widget>

Здесь к каждому полю в виджете hotspot добавлен префикс с меткой Hotspot:. Этот префикс также отображается в Расширенном редакторе переводов, что упрощает идентификацию и перевод каждого поля:

Перевод виджета hotspot в Расширенном редакторе переводов

Регистрация других типов контента конструкторов страниц

Дополнительную информацию о регистрации строк, шорткодов и прочего см. в нашей документации по регистрации контента конструкторов страниц в Вашем файле языковой конфигурации.

Дополнительные ресурсы

Чтобы узнать больше о файле wpml-config.xml, изучите руководство Файлы языковой конфигурации.

Для настройки других элементов с помощью файла wpml-config.xml изучите наши дополнительные руководства:

Автор: Amir · Последнее обновление: 24 апреля 2026