Php qTranslate和AJAX的Wordpress问题

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文件(我在使用

我正在将wordpress与qTranslate和自定义主题一起使用。这个主题带来了一个自动完成的搜索。我的问题是帖子/页面标题没有翻译。我检查了stackoverflow/google,发现AJAX请求和qTranslate似乎有问题。这就是为什么我在php文件的url参数中添加了以下内容:

?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 );
        };