Php qTranslate和AJAX的Wordpress问题
我正在将wordpress与qTranslate和自定义主题一起使用。这个主题带来了一个自动完成的搜索。我的问题是帖子/页面标题没有翻译。我检查了stackoverflow/google,发现AJAX请求和qTranslate似乎有问题。这就是为什么我在php文件的url参数中添加了以下内容:Php qTranslate和AJAX的Wordpress问题,php,jquery,ajax,wordpress,qtranslate,Php,Jquery,Ajax,Wordpress,Qtranslate,我正在将wordpress与qTranslate和自定义主题一起使用。这个主题带来了一个自动完成的搜索。我的问题是帖子/页面标题没有翻译。我检查了stackoverflow/google,发现AJAX请求和qTranslate似乎有问题。这就是为什么我在php文件的url参数中添加了以下内容: ?lang='.qtrans_getLanguage() 我检查了控制台,参数被正确地(针对每种语言)传递到javascript文件。我现在需要的是读取这个url参数并将其返回给我的php文件(我在使用
?lang='.qtrans_getLanguage()
我检查了控制台,参数被正确地(针对每种语言)传递到javascript文件。我现在需要的是读取这个url参数并将其返回给我的php文件(我在使用$.getJSON
时,通过向url添加lang=en
测试了js文件,它工作了,但我需要传递的语言)
PHP
尽管这不是一个好的解决方案,但我还是想到了这个:
var lang;
$('script').each(function(i, e) {
var scriptName = $(e).attr('src');
if(typeof scriptName != 'undefined') {
if(scriptName.indexOf('wpss-search-suggest') != -1) {
lang = scriptName.substr(scriptName.lastIndexOf('=')+1, scriptName.length-1);
}
}
});
$.getJSON(MyAcSearch.url+'?callback=?&lang='+lang+'&action='+acs_action, req, response);
我发现了一个更简单的解决方法,但条件php是必要的(使用条件在php文件中硬编码脚本):
而不是:
window.location.href=ui.item.link;
您可以使用:
var lang = '<?php echo qtrans_getLanguage(); ?>';
window.location.href=ui.item.link+'?lang='+lang;
var lang='';
window.location.href=ui.item.link+'?lang='+lang;
因此,脚本是(我还包括了另一个检查qTranslate是否激活的条件):
//
//自动完成搜索表单
var acs_action='myprefix_autocompletesearch';
jQuery(“#s”).autocomplete({
延误:50,
位置:{of:#搜索外部#搜索.container},
附件:$(“#搜索框”),
来源:功能(请求、响应){
getJSON(MyAcSearch.url+'?回调=?&action='+acs\u操作、请求、响应);
},
选择:功能(事件、用户界面){
var lang='';
window.location.href=ui.item.link+'?lang='+lang;
window.location.href=ui.item.link;
},
最小长度:2,
}).data(“ui自动完成”)。\u renderItem=功能(ul,项目){
返回jQuery()
.append(“+item.image+”+item.label+”)
.附录(ul);
};
希望有帮助
window.location.href=ui.item.link;
var lang = '<?php echo qtrans_getLanguage(); ?>';
window.location.href=ui.item.link+'?lang='+lang;
//
// Autocomplete Searchform
var acs_action = 'myprefix_autocompletesearch';
jQuery("#s").autocomplete({
delay: 50,
position: {of: "#search-outer #search .container" },
appendTo: $("#search-box"),
source: function(req, response){
jQuery.getJSON(MyAcSearch.url+'?callback=?&action='+acs_action, req, response);
},
select: function(event, ui) {
<?php if (function_exists('qtrans_getLanguage')){ ?>
var lang = '<?php echo qtrans_getLanguage(); ?>';
window.location.href=ui.item.link+'?lang='+lang;
<?php }else{ ?>
window.location.href=ui.item.link;
<?php } ?>
},
minLength: 2,
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return jQuery( "<li>" )
.append( "<a>" + item.image + "<span class='title'>" + item.label + "</span></a>" )
.appendTo( ul );
};