Обновляю WordPress тему в которой установлен сторонний, отдельно скачанный перевод шаблона, а он удаляется (автор темы не сделал перевода при установке темы, хотя и подготовил тему для перевода). Кроме того, я пользуюсь не основной темой, а делаю дочернюю, чтобы можно было безболезненно обновлять основную тему и сохранять изменения. Не буду рассказывать про дочерние темы, т.к. много текста на эту тему есть в Гугле. Коротко говоря, суть дочерних тем в том, что созданные в них файлы заменяют собой аналогичные файлы родительской темы. Но этот финт не проходит для файлов локализации. Чтобы это исправить, методом гугленья и проб и ошибок было установлено, что можно заставить использовать перевод из директории доченней темы «/languages» если в дочерней теме создать файл functions.php с таким содержимым:
<?php
/*
Подгрузка перевода основной темы из дочерней темы (чтобы сторонний перевод не удалялся при обновлении основной темы)
*/
function my_child_theme_setup() {
load_child_theme_textdomain( ‘ИМЯ ОСНОВНОЙ ТЕМЫ‘, get_stylesheet_directory() . ‘/languages’ );
}
add_action( ‘after_setup_theme’, ‘my_child_theme_setup’ );
?>
После этого, нужно просто скопировать перевод из директории основной темы в директорию дочерней темы «/languages».
Имя основной темы было вытащено из кода файла «functions.php» основной темы, нашел я его в таком участке кода:
load_theme_textdomain( 'ИМЯ ОСНОВНОЙ ТЕМЫ', get_template_directory() . '/languages' );
Надеюсь, что всё понятно, хотя сам не очень понимаю. Если нет — комментируйте, вместе будем думать. Если вы опытный программист, в отличии от, и заметили глупую логику в том, что я делаю, буду благодарен за советы и замечания. Невзирая на то, что все работает. Спасибо за внимание.
Удинственный автор, указавший на зависимость от load_child_theme_textdomain( ‘ИМЯ ОСНОВНОЙ ТЕМЫ‘,
т.е. совпадать должен не текстовый домен дочка, а родителя.
Здравствуйте!
Спасибо за комментарий. Действительно, я обычно пишу в блог, только если не нашел соответствующей информации раньше.
Здравствуйте! попробовала Ваш метод, но к сожалению, не получается. Он уже не работает?