Современные темы ВордПресс постепенно переходят от использования собственных панелей настройки к работе с Кастомайзером.
Для пользователей это означает более стандартный подход к кастомизации, поскольку интерфейс становится практически одинаковым для всех тем. Для команды разработчиков 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 может разобрать текст на языки и вытащить нужный кусок в нужное время…
ЕСЛИ…
…если бы авторы темы применили рекомендуемый фильтр, прежде чем выводить заголовок на экран:
[php]
// Применить фильтр к заголовку
echo apply_filters( ‘the_title’, $zerif_bigtitle_title );
[/php]
Поскольку в коде темы фильтр не использован, WPGlobus-у необходимо “перехватить” управление функцией get_theme_mod
и уже в процессе её работы выделить нужную порцию текста. Для этого нужно установить, активировать и настроить плагин WPGlobus Translate Options (бесплатное расширение).
После того как WPGlobus Translate Options будет настроен на работу с записью theme_mods_zerif-lite
, дополнительные фильтры в теме не будут нужны.
Хорошо. Как вводить мультиязычные строки в Кастомайзере?
Для этого тема должна иметь Файл Конфигурации WPGlobus. Мы начали создавать коллекцию файлов конфигурации для популярных бесплатных тем на ГитХабе. Если Ваша любимая тема ещё не в коллекции, дайте нам знать, и – что более важно – дайте знать авторам темы!
Мы подготовили небольшое слайд-шоу о том, как мультиязычное редактирование работает в Кастомайзере, в случае когда тема имеет файл конфигурации:
Спасибо за Ваш интерес к WPGlobus. Обращайтесь к нам с любыми вопросами и предложениями!