qTranslate slug,在Ajax调用中获取其他语言的帖子url

时间:2014-11-28 22:07:15

标签: php wordpress qtranslate

我正在制作一个双语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

这可能不是正确的方法,但我在我的ajax调用中调用了wp()并设置了$ qTranslate_slug对象。但是,链接是“丑陋的”,即http://example.com/fr/?id=68 我怎样才能得到漂亮的网址?

更新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为您提供了以下格式的网址:http://example.com/fr/?id=68 如果“id”更改为“p”,则当您访问该页面时,该URL将转换为漂亮的URL。但是,我仍然想知道如何在链接中显示漂亮的版本。

0 个答案:

没有答案