我正在制作一个双语的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是一个空数组 .

UPDATE 1

这可能不是正确的方法,但我在我的ajax调用中调用了wp()并设置了$ qTranslate_slug对象 . 但是,链接是"ugly",即http://example.com/fr/?id=68我如何获得漂亮的网址?

UPDATE 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 } ?>

UPDATE 3

qTranslate为您提供以下样式的URL:http://example.com/fr/?id=68如果"id"更改为"p",则当您访问该页面时,该URL将转换为漂亮的URL . 但是,我仍然想知道如何在链接中显示漂亮的版本 .