【问题标题】:qTranslate X and AJAX: language switch does not detect ajax-loaded URLsqTranslate X 和 AJAX:语言切换不检测 ajax 加载的 URL
【发布时间】:2017-01-13 04:47:13
【问题描述】:

我有一个WordPress theme loading pages via AJAX,并要求这些页面同时使用英语和德语。在这些情况下,我总是使用 qTranslate,因为我可以快速手动地以我选择的语言填充内容。

但是,qTranslate X 不会读取 AJAX 更新的 URL。 考虑这个例子:用户正在阅读德语的给定帖子 (website.com/firstpost),因为它是默认语言。用户点击另一个帖子,转到 website.com/anotherpost。在那里,用户想用英文阅读这个“另一篇文章”,所以用户点击英文标志。因为 website.com/anotherpost 是通过 AJAX 加载的,qTranslate X 会将用户带到 website.com/en/firstpost(或例如 website.com/firstpost ?lang=en),至于插件,URL还是website.com/firstpost

我希望有人对这个特定的插件有经验,并且它通过 AJAX 调用运行。我对 AJAX 非常陌生,因为我从未使用过它,所以请原谅我代表我使用任何愚蠢的术语和/或思维过程。

如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: ajax wordpress wordpress-theming


    【解决方案1】:

    你需要通过ajax调用发送当前语言:

    var actioncall = {
      action: 'myajax_function',
      qtx_lang : MyAjax.qtx_lang
    };
    
    $.post(MyAjax.ajaxurl,actioncall , function(response) {
    
    // do stuff 
    
    }, 'json');
    });
    

    要做到这一点,您需要:

    global $q_config;
    wp_localize_script( 'existing_script', 'MyAjax', 
         array( 'ajaxurl' => admin_url( 'admin-ajax.php' ),
                'qtx_lang' => $q_config['language']
     ) );
    

    最后:

    在获取帖子的 prefix_ajax_myajax_function() 上,您可以像这样使用它:

    $qtx_lang= $_POST['qtx_lang'];
    ....
    $title = qtranxf_use($qtx_lang,$the_page->post_title);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多