Загрузка текстового домена дочерней темы в WordPress
Что такое загрузка текстового домена?
Функция load_child_theme_textdomain() позволяет загружать переведенные строки для дочерней темы WordPress. Благодаря ей ваш сайт может отображать текст на нужном вам языке, если соответствующий файл перевода (например, .mo) находится в корневой папке дочерней темы.
Файлы .mo должны иметь специальные названия в соответствии с языком (locale), например de_DE.mo для немецкого.
Синтаксис функции
Возвращаемое значение
Функция возвращает true, если текстовый домен успешно загружен, и false в противном случае.
Использование
load_child_theme_textdomain( $domain, $path );
- $domain (строка, обязательный параметр): текстовый домен. Уникальный идентификатор для получения переведенных строк.
- $path (строка|false, необязательный параметр): путь к директории с файлом
.mo. По умолчанию имеет значениеfalse.
Примеры использования
Пример 1: Вызов функции внутри хука after_setup_theme
Рекомендуется вызывать функцию load_child_theme_textdomain() в хуке after_setup_theme, так же как и родительскую функцию load_theme_textdomain().
add_action( 'after_setup_theme', 'wpdocs_child_theme_setup' );
/**
* Загружает текстовый домен дочерней темы.
*/
function wpdocs_child_theme_setup() {
load_child_theme_textdomain( 'my_parent_theme', get_stylesheet_directory() . '/languages' );
}
Обратите внимание на следующее:
- Файлы
.moи.poрасполагаются не в корне дочерней темы, а в папкеlanguages, которая создается внутри дочерней директории. my_parent_theme— это текстовый домен родительской темы. Обычно он совпадает с именем папки родительской темы.- Файлы
.moдолжны иметь имена, соответствующие языковым кодам. Например,de_DE.moдля немецкой версии.
Пример 2: Подключение файла перевода дочерней темы
add_action( 'after_setup_theme', 'my_child_theme_setup' );
function my_child_theme_setup(){
load_child_theme_textdomain( 'my_child_theme', get_stylesheet_directory() . '/languages' );
}
Для работы данный файл .mo должен находиться в папке languages вашей дочерней темы и иметь название, соответствующее языковому коду. Например: languages/de_DE.mo.
Изменения в версии
Функция load_child_theme_textdomain() была добавлена в WordPress начиная с версии 2.9.0.
Код функции
function load_child_theme_textdomain( $domain, $path = false ) {
if ( ! $path ) {
$path = get_stylesheet_directory();
}
return load_theme_textdomain( $domain, $path );
}
Функция проверяет, указан ли путь. Если путь не передан, то используется директория текущей темы.
Заключение
Функция load_child_theme_textdomain() играет важную роль в интернационализации вашего сайта. Она позволяет обеспечить локализацию для пользователей, говорящих на разных языках, что, в свою очередь, делает ваш сайт более доступным и удобным.