• Resolved ypeynaud

    (@ypeynaud)


    Hi there,

    Here is my problem: I have pages in english which display different content based on arguments, e.g.:

    mysite.com/en/a-page-called-with-parameters?param1=value1&param2=value2

    However, the language menu switcher doesn’t take the parameters into account, i.e. its url for switching the page to French is always:

    mysite.com/fr/the-translated-french-page-called-with-parameters instead of:

    mysite.com/fr/the-translated-french-page-called-with-parameters?param1=value1&param2=value2

    Thus this is not the same content which is displayed when using the menu switcher, as the parameters are lost. It is puzzling the site users and more than that, they have no way to retrieve the lost parameters while using a non-English version.

    Is there any workaround for that?

    Many thanks in advance,
    Yves.

    https://www.ads-software.com/plugins/polylang/

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Support Chrystl

    (@chrystl)

    Thread Starter ypeynaud

    (@ypeynaud)

    Thanks @chrysti. I made it working with the following code:

    //******************************************************************************************************
    //*** Keep query string parameters in Polylang translated urls
    //******************************************************************************************************
    add_filter('pll_translation_url', 'keep_params_in_pll_translated_urls', 10, 2);
    function keep_params_in_pll_translated_urls($url, $lang)
    {
        $query_string = $_SERVER['QUERY_STRING'];
        if ( $query_string ) $url .= '?' . $query_string;
        return $url;
    }

    However I wonder why it is not the default behavior in PLL…

    Cheers,
    Yves.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Parameters not taken into account in Polylang menu switcher’ is closed to new replies.