Как сделать, чтобы при использовании дочерней темы Вордпресс, файлы локализации загружались из неё, а не из родительской темы, как это происходит в Вордпресс по умолчанию.
Поддержка дочерних тем в Вордпресс появилась в третьей версии, почти ровно десять лет назад. И все эти годы вопросов по дочерним темам меньше не становится. Механизм на самом деле очень нужный и полезный, сильно упрощает работу с коммерческими темами — позволяет не вносить изменения в код основной темы, что даёт возможность своевременно обновлять тему без каких-либо потерь.
Дочерняя тема WordPress — это тема, которая расширяет функционал другой темы, называемой родительской темой, и позволяет изменять или дополнять функционал родительской темы.
WordPress Codex
Всё это прекрасно работает, пока не касаешься локализации дочерней темы. Файлы с переводами (.mo) обычно лежат в директории languages
основной темы. Если их оставить там, они затрутся при первом же обновлении темы. Естественно, локализация темы слетит без возможности восстановления и интерфейс сайта будет снова на дефолтном английском языке. Если локализационные файлы просто скопировать в дочернюю тему, работать они вот так сразу не будут. Об этом сначала нужно известить Вордпресс. Делается это очень просто с помощью хука after_setup_theme
и функции load_child_theme_textdomain()
.
Хук after_setup_theme
вызывается после инициализации страницы перед хуком init
и используется для установки базовых возможностей темы, а функция load_child_theme_textdomain()
загружает файл перевода дочерней темы (.mo) в память, для дальнейшей работы с ним.
Добавляем такой код в файл functions.php
дочерней темы
add_action( 'after_setup_theme', 'my_child_theme_setup' ); function my_child_theme_setup(){ load_child_theme_textdomain( 'domain', get_stylesheet_directory() . '/languages' ); }
Вместо domain
указываем уникальный текстовый домен темы.
Найти его можно в разных местах. Например, в style.css
родительской темы.
В популярной теме «Bridge» это выглядит так
У «Avada» так
Текстовый домен можно найти и в коде темы. Например, в дефолтной Вордпресс теме «2020» это выглядит так
В других темах аналогично.
Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.
Подробнее-
А что дальше то? Продолжения не будет?) Как создавать файлы перевода и куда их класть?
-
Дальше локализуется как обычная тема с помощью приложения POEDIT, например
-