为 wordpress 重写和组合查询字符串

Rewrite and combine query strings for wordpress

我正在使用两个具有不同语言查询字符串设置的插件。语言插件本身与 mydomain.com/?lang=english (polylang 插件)一起使用,其他插件需要检索 mydomain.com/?language =英文.

我应该如何重写 url 才能使两者都正常工作?我尝试了以下方法:

   function languagerewrite() {
     //$language = get_query_var('lang', 1); 
     //get_query_var not working, yet 'lang' is registered Why? 
       if(isset($_GET["lang"])) {
       $language = $_GET["lang"];

      echo esc_url(add_query_arg( 'language', $language ));
      }
    }
    add_action('init', 'languagerewrite', 10, 0);

这将回应以下内容: ?lang=english&language=english 应该可以工作,尽管我需要将其重写为一个很好的 url。 怎样才能使用打印出来的url?这是在 php 中执行此操作的最佳方法还是我应该在 htaccess 中重写?谢谢

使用这样的 htaccess

RewriteEngine on
# two lines to avoid endless redirect. Although you may leave only 1st
RewriteCond %{QUERY_STRING} !lang(.+)language
RewriteCond %{QUERY_STRING} !langage(.+)lang
# Looking for lang or language and saving other get values
RewriteCond %{QUERY_STRING} ^(.+&|)lang(|uage)=([^&]+)(&.+|)$ 
RewriteRule ^(.+)$ /?%1lang=%3&language=%3%4 [L]

要尝试,请添加 R - [R,L] 以在浏览器地址选项卡中查看重定向