qTranslate получение контента по языку

12 мая 2012 г., 15:05:38
Просмотры: 27.3K
Голосов: 9

Как получить контент по id и определенному языку?

Мне нужно отобразить контент на двух конкретных языках на странице, независимо от языка сессии. Пока что у меня есть следующий прогресс: это работает для получения контента по id на активном языке:

<?php $id=47; $post = get_page($id); $content = apply_filters('the_content', $post->post_content); echo $content;  ?>

Как применить фильтр для конкретного языка?

Спасибо за помощь. Sziro

0
Все ответы на вопрос 1
8
15

Вы должны использовать нативные функции qTranslate для выполнения своей работы. Используйте qtrans_use - это функция, которая выполняет всю работу в qTranslate. Она определена в файле qtranslate_core.php, строка 747

function qtrans_use($lang, $text, $show_available=false) 

Используйте её для исходного содержимого записи!

Попробуйте этот код:

<?php 
 $id=47; $post = get_page($id); 
 $content = qtrans_use('en', $post->post_content,false); 
 echo $content;  
?>

В этом примере он вернёт английскую версию вашего текста! Замените идентификатор языка на нужный для перевода на другой язык!

12 мая 2012 г. 16:01:36
Комментарии

Да, рад, что смог помочь!

keatch keatch
12 мая 2012 г. 17:58:56

Это отлично работает, но мне потребовалось несколько попыток, чтобы понять, что часть get_page($id) важна. К моменту рендеринга представления qTranslate уже изменил содержимое $post, оставив только текущий язык, поэтому вам нужно загрузить его снова, чтобы получить варианты для всех языков.

Marcus Downing Marcus Downing
26 июл. 2012 г. 15:57:17

@keatch, не мог бы ты помочь мне с этим плагином? Он постоянно показывает текст на английском, хотя я установил его правильно. Нужно ли вносить какие-то изменения в код? Или он должен работать нормально без дополнительных действий?

Jack Jack
10 сент. 2012 г. 13:31:19

Если вам все еще нужна помощь, вы можете связаться со мной лично или спросить здесь. Буду рад помочь. @Jack

Lenin Lenin
19 янв. 2013 г. 18:54:47

Побочный вопрос: как получить идентификатор текущего языка?

Raptor Raptor
15 апр. 2013 г. 07:21:18

@ShivanRaptor чтобы получить идентификатор текущего языка, вы можете использовать разные способы, но наиболее рекомендуемый: qtrans_getLanguage().

Lenin Lenin
20 окт. 2013 г. 13:45:24

Фатальная ошибка: Вызов неопределенной функции qtrans_use() в файле index.php при использовании указанного кода

vrajesh vrajesh
14 окт. 2015 г. 10:13:33

Для @vrajesh и других пользователей qtranslate-x используйте qtranxf_use. Функция определена в qtranslate-core.php как function qtranxf_use($lang, $text, $show_available=false, $show_empty=false)

Davey Davey
13 февр. 2017 г. 12:31:51
Показать остальные 3 комментариев