通过Polylang插件更改语言时,是否可以将所有查询参数保留在URL中?

问题描述

当在URL中为页面上的帖子设置查询,然后通过polylang插件更改语言时,它将重置链接并摆脱参数和查询。该页面基于我开发的自定义主题wordpress构建。 ./en/projects/?tag_kem_en%5B%5D=three-springs更改为./projekty/ 我使用以下代码更改语言: pll_the_languages($args);

解决方法

您可以通过调整Polylang通过pll_the_languages()提供的URL来包含查询参数。

我使用此代码段来工作。

/**
 * Filter the translation url of the current page before Polylang caches it.
 *
 * @param null|string $url The translation url,null if none was found.
 */
function url_query_string( $url ) {
    if ( ! empty( $_SERVER['QUERY_STRING'] ) ) {
        return $url . '?' . $_SERVER['QUERY_STRING'];
    }
    return $url;
}
add_filter( 'pll_the_language_link','url_query_string' );

P.s确保为函数添加前缀或使用名称空间。