Узнайте, как сделать переводимыми тексты, сохраненные в таблице wp_options, и автоматически конвертировать ID объектов.
Темы и плагины иногда включают тексты в параметры, которые они сохраняют в таблице wp_options. WPML позволяет Вам переводить такие тексты, заменяя вызовы get_option переводами, которые Вы указываете в файле wpml-config.xml.
Файл wpml-config.xml — это конфигурационный документ, который указывает WPML, какие строки в сохраненных параметрах нуждаются в переводе.
Это руководство предназначено для разработчиков, которые создают собственные темы и плагины. Если Вы пытаетесь перевести строки из сторонних тем и плагинов, прочитайте нашу страницу о поиске строк, которые не отображаются на странице Перевод строк.
Нужно сгенерировать файл wpml-config.xml? Ознакомьтесь с нашим пошаговым руководством по автоматическому созданию конфигурационного файла с помощью плагина Multilingual Tools.
Перевод строк в таблице wp_options
Когда темы и плагины используют get_option, они считывают значения из таблицы wp_options. WPML может фильтровать эти вызовы и предоставлять перевод для значений этих параметров.
Это работает, если запись wp_option является простой строкой, а также когда это сериализованный массив.
Чтобы перевести один параметр, добавьте запись key в раздел admin-texts. Чтобы перевести сериализованный массив, добавьте несколько ключей внутри key, как показано на примере my_plugin_options ниже.
Тексты администратора в файле конфигурации языков
<wpml-config>
<admin-texts>
<key name="my_plugins_options">
<key name="option_name_1" />
<key name="option_name_2" />
<key name="options_group_1">
<key name="sub_option_name_11" />
<key name="sub_option_name_12" />
</key>
<key name="options_group_2">
<key name="sub_option_name_21" />
<key name="sub_option_name_22" />
</key>
</key>
<key name="simple_string_option"/>
</admin-texts>
</wpml-config>В дочерних ключах можно использовать подстановочный знак *, как в следующем примере.
Пример использования подстановочного знака
<wpml-config>
<admin-texts>
<key name="testing_option">
<key name="*"/>
</key>
</admin-texts>
</wpml-config>Это эквивалентно следующему коду:
Эквивалентный код
<wpml-config>
<admin-texts>
<key name="testing_option">
<key name="sub_key_1"/>
<key name="sub_key_2">
<key name="sub_sub_21">
<key name="sub_sub_211"/>
</key>
<key name="sub_sub_21"/>
</key>
<key name="more_sub_keys"/>
</key>
</admin-texts>
</wpml-config>Обратите внимание, что подстановочный знак * НЕ работает в родительских ключах:
Подстановочный знак не работает в родительских ключах
<wpml-config>
<admin-texts>
<key name="some_option_*" />
<key name="*"/>
</admin-texts>
</wpml-config>Автоматическая конвертация ID объектов в текстах администратора
Начиная с WPML 4.8, Вы можете объявить, что определенные тексты администратора содержат ID объектов, таких как ID записей, товаров или таксономий. WPML автоматически конвертирует эти ID на фронтенде сайта.
Это расширение существующего функционала по автоматической конвертации ID в шорткодах, которое использует тот же синтаксис.
В записях key в разделе admin-texts используйте:
- type для указания типа объекта, на который дается ссылка (например, post-ids или taxonomy-ids)
- sub-type (необязательно), если Вы хотите объявить конкретную сущность (например, product)
Атрибуты Type и sub-type можно добавлять на любом уровне вложенности.
WPML может обнаруживать и конвертировать ID в следующих форматах:
- Одиночный ID (например, 123)
- Массив (и закодированный массив) ID (например, [123,456,789])
- Список ID, разделенных запятыми (например, «123,456,789»)
Пример объявления ID объектов в текстах администратора
<wpml-config>
<admin-texts>
<key name="admin_text_option_key" type="post-ids" sub-type="product" />
<key name="admin_text_with_nested_ids">
<key name="admin_text_nested_key_with_ids" type="post-ids" sub-type="product" />
<key name="admin_text_nested_key_with_ids_with_wildcard_*" type="post-ids" sub-type="product" />
<key name="admin_text_nested_key_with_subkey">
<key name="admin_text_nested_key_with_subkey_with_ids" type="post-ids" sub-type="product" />
</key>
</key>
</admin-texts>
</wpml-config>Дополнительные ресурсы
Чтобы узнать больше о файле wpml-config.xml, ознакомьтесь с руководством Файлы конфигурации языков.
Для настройки других элементов с помощью файла wpml-config.xml ознакомьтесь с нашими дополнительными руководствами:
- Перевод пользовательских шорткодов с помощью WPML
- Регистрация контента конструкторов страниц для перевода
- Регистрация пользовательских виджетов конструкторов страниц для перевода
- Настройка параметров перевода для произвольных полей с помощью конфигурационного файла WPML
- Регистрация пользовательских терминов, типов записей и таксономий как переводимых
- Как сделать пользовательские блоки Gutenberg переводимыми
- Настройка переключателя языков WPML с помощью конфигурационного файла WPML