qTranslate-X вывод статьи в другом языке

2 комментария

Допустим установлен у вас плагин qTranslate-X. Допустим есть два языка: русский и английский. К примеру вам нужно вывести и русский и английский заголовок статьи на русскоязычной версии сайта. Сходу это сделать не получится, т.к. этот плагин автоматически переводит всю статью на текущий язык.

Делается это так:

$titleEn — будет содержать заголовок на английском. В общем вот и все. Подробнее почему именно так, смотрите далее.

Конструкция $mypost = WP_Post::get_instance($postId); получает из базы запись в виде объекта в непреобразованном виде. Т.е. со стандартными тегами <!--:en--> и <!--:ru-->. Что дает возможность получать любой перевод в независимости от текущего языка.

Если же мы работаем с текущей статей, то ядро WordPress-а кеширует эту статью, до того как начнется вывод в шаблон. Но до попадания в кеш эта статья успевает обработаться плагином qTranslate-X. И в итоге в кеш попадает уже переведенный объект статьи. Поэтому кеш мы сначала сбрасываем wp_cache_delete($postId, 'posts'); а уже потом получаем саму запись $mypost = WP_Post::get_instance($postId);.

А уж после, мы можем перевести либо часть объекта, либо весь объект в любой нужный нам язык:

  1. Татьяна

    Спасибо большое за статью, было хорошо, но мало :-) нельзя ли подробнее узнать какие настройки вообще изначально вносить в этот плагин после установки и активации? спасибо ещё раз

    1. Дмитрий Амиров Автор

      Да я уже не помню точно. Вроде как там все интуитивно понятно. Настраиваешь список языков — и в общем то все :)

Добавить комментарий

Прочли запись? Понравилась? Не стесняйтесь, оставьте, пожалуйста, свой комментарий. Мне очень интересно, что вы думаете об этом. Кстати в комментарии вы можете задать мне любой вопрос. Я обязательно отвечу.

Вы можете оставить коментарий анонимно, для этого можно не указывать Имя и email. Все комментарии проходят модерацию, поэтому ваш комментарий появится не сразу.