我正在制作一个双语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。但是,我仍然想知道如何在链接中显示漂亮的版本。