Современные темы ВордПресс постепенно переходят от использования собственных панелей настройки к работе с Кастомайзером.

Для пользователей это означает более стандартный подход к кастомизации, поскольку интерфейс становится практически одинаковым для всех тем. Для команды разработчиков WPGlobus Кастомайзер являлся достаточно “узким местом” – но теперь, начиная с Версии 1.3.0 задача, в основном, решена.

“Классический” метод (WPML) предполагает редактирование всех текстов в специальном модуле “String Editor”. Подход WPGlobus-а более интуитивный: переводим там же, где вводим тексты, а не где-нибудь на отдельном экране!

Посмотрим на процесс кастомизации темы:

Кастомайзер - диаграмма процесса

Как только мы активируем новую тему, WordPress предлагает нам её настроить. Нажимаем кнопку Настроить (“Customize”), попадаем на страницу Кастомайзера, меняем нужные настройки, вводим тексты и сохраняем. Всё – просто.

WordPress сохраняет введенные данные в таблице базы данных wp_options. Затем тема использует методы WP API чтобы загрузить настройки из базы. И – если речь идет о текстовых данных – тема выводит их на экран в нужных местах.

Например, тема Zerif Lite, показанная на картинке сверху, использует подобных код, чтобы распечатать свой “Big Title” на домашней странице:

[php]
// Загрузить заголовок из таблицы настроек
$zerif_bigtitle_title = get_theme_mod( ‘zerif_bigtitle_title’,
__(‘ONE OF THE TOP …’,’zerif-lite’));
// Распечатать
if( !empty($zerif_bigtitle_title) ):
echo $zerif_bigtitle_title;
endif;
[/php]

Функция get_theme_mod извлекает заголовок из базы данных. Затем, echo печатает его.

Отлично. Что с локализацией? Причём тут вообще WPGlobus?

WPGlobus сохраняет мультиязычные тексты с использование специальных разделителей в строках:

Мультиязычный текст в формате WPGlobus

Таким образом, если ввести текст в этом формате…

Постойте, не уходите, Вам не придётся это делать!
Это просто короткое техническое описание того, что делается “внутри”. Пожалуйста, продолжайте читать :)

…тогда WPGlobus может разобрать текст на языки и вытащить нужный кусок в нужное время…

ЕСЛИ…

…если бы авторы темы применили рекомендуемый фильтр, прежде чем выводить заголовок на экран:

[php]
// Применить фильтр к заголовку
echo apply_filters( ‘the_title’, $zerif_bigtitle_title );
[/php]

Поскольку в коде темы фильтр не использован, WPGlobus-у необходимо “перехватить” управление функцией get_theme_mod и уже в процессе её работы выделить нужную порцию текста. Для этого нужно установить, активировать и настроить плагин WPGlobus Translate Options (бесплатное расширение).

WPGlobus Translate Options - тема Zerif

После того как WPGlobus Translate Options будет настроен на работу с записью theme_mods_zerif-lite, дополнительные фильтры в теме не будут нужны.

Хорошо. Как вводить мультиязычные строки в Кастомайзере?

Для этого тема должна иметь Файл Конфигурации WPGlobus. Мы начали создавать коллекцию файлов конфигурации для популярных бесплатных тем на ГитХабе. Если Ваша любимая тема ещё не в коллекции, дайте нам знать, и – что более важно – дайте знать авторам темы!

Мы подготовили небольшое слайд-шоу о том, как мультиязычное редактирование работает в Кастомайзере, в случае когда тема имеет файл конфигурации:

Спасибо за Ваш интерес к WPGlobus. Обращайтесь к нам с любыми вопросами и предложениями!