为 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] 以在浏览器地址选项卡中查看重定向
我正在使用两个具有不同语言查询字符串设置的插件。语言插件本身与 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] 以在浏览器地址选项卡中查看重定向