Наверное немного не так сформулировал. С функцией pll_e() плагина Polylang я разобрался, но она подходит, если нужно перевести какие-то короткие фразы. А как быть, если нужно добавить языковой перевод большого текста с html-тегами?
Модератор
Юрій
(@yube)
Ну, если совсем правильно делать, то не должно быть большого языкозависимого текста в файлах-шаблонах. Либо фразы, либо нечто типа html-сниппетов, редактируемых из админки и являющихся типом записи, которую понимает плагин мультиязычия.
А если с файлами-шаблонами, то как-то так:
get_template_part(pll_current_language() .'/text1');
имена (суб)директорий должны соответствовать слагу языка.
Полностью согласен, что не должно быть большого текста, но это SEO-тексты в шаблонах вывода записей. Попробую ваш вариант.
Модератор
Юрій
(@yube)
Попробую ваш вариант.
Он Ваш, я только показал, как можно поступить с директориями 🙂
Понял, но все равно спасибо)
И последний вопрос, который меня интересует. Это произвольные поля. Как сделать, чтобы какое-то поле выводилось на все языковые версии, а какое-то, чтобы заполнялось для каждой версии записи отдельно?
Есть много плагинов на эту тему, может другой плагин больше подойдет для Вашей цели https://ru.wordpress.org/plugins/search/Multilanguage/
Перевод произвольных полей организовал следующим образом. Верное ли это решение?
<?php if(pll_current_language() == 'ru'): echo get_post_meta($post->ID, 'field', true); elseif(pll_current_language() == 'en'): echo get_post_meta($post->ID, 'field_en', true); endif; ?>
Модератор
Юрій
(@yube)
Верное ли это решение?
Как учили классики марксизма-ленинизма, практика — критерий истины. Работает? Значит, верное.
Я бы упростил 😉
<?= get_post_meta($post->ID, 'field_' . pll_current_language(), true); ?>
соотв. меты field_en и field_ru