Загрузка текстового домена дочерней темы в WordPress: синтаксис, примеры, полезные советы

Загрузка текстового домена дочерней темы в 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() играет важную роль в интернационализации вашего сайта. Она позволяет обеспечить локализацию для пользователей, говорящих на разных языках, что, в свою очередь, делает ваш сайт более доступным и удобным.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *