qTranslate slug, получить ссылку на пост на другом языке в вызове Ajax

Я делаю двуязычный сайт WordPress. Я хочу загружать посты через AJAX и иметь ссылку на тот же пост, но на другом языке. Я использую qTranslate slug и обычно полагаюсь на глобальную переменную $ qtranslate_slug следующим образом:

$qtranslate_slug->get_current_url($targetLang);

Это прекрасно работает, если вы находитесь на странице поста, но не работает в посте, загруженном ajax.

В моем вызове AJAX я устанавливаю объект post следующим образом:

$post = get_post($postId);
setup_postdata($post);

Я получаю все данные из поста, я просто не уверен, какую функцию вызывать для установки объекта $ qtranslate_slug. В вызове ajax $ qtranslate_slug-> current_url является пустым массивом.

ОБНОВЛЕНИЕ 1

Вероятно, это не правильный путь, но я вызвал wp () в своем вызове ajax, и он установил объект $ qTranslate_slug. ОДНАКО ссылки «некрасивые», т.е. http://example.com/fr/?id=68
Как я могу получить красивый URL?

ОБНОВЛЕНИЕ 2
в functions.php у меня есть следующая функция:

function t($fr, $en){
switch(qtrans_getLanguage()){
case "fr":
return $fr;
default:
return $en;
}
}

Вот мой код Ajax:

<?php
global $qtranslate_slug;
if(isset($_GET["id"])){
$siteRoot = dirname(__FILE__) . "/../../../../";
require_once $siteRoot . "wp-load.php";
wp();
$post = get_post($_GET["id"]);
setup_postdata($post);

// generate post html. I didn't include it here, because it has nothing to do with the problem.
?>
<script>
var alternateUrl = "<?php echo $qtranslate_slug->get_current_url(t('en', 'fr')); ?>";
</script>

<?php } ?>

ОБНОВЛЕНИЕ 3

qTranslate дает вам URL в стиле: http://example.com/fr/?id=68
Если «id» меняется на «p», то при посещении страницы URL будет преобразован в симпатичный URL. Тем не менее, я все еще хотел бы знать, как заставить симпатичную версию отображаться в ссылке.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]