我正在编写一个插件,如果访问者有德语IP,可以将其重定向到翻译后的页面。
add_action( \'wpml_loaded\', \'geo_redirect_client\' );
function geo_redirect_client() {
define( \'IP_LANG\', \'de\' ); // This will be coming from an some IP to country code API
global $sitepress;
if( ICL_LANGUAGE_CODE != IP_LANG ) {
$languages = $sitepress->get_ls_languages();
if( isset( $languages[IP_LANG] ) ) {
$url = (isset($_SERVER[\'HTTPS\']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$redirect_url = apply_filters( \'wpml_permalink\', $url, IP_LANG );
//wp_redirect( $redirect_url, 301 );
//exit;
echo $redirect_url;
}
}
}
但问题是wpml\\u permalink是不对的。
而不是获取www.mysite。com/de/kontakt/it正在访问www.mysite。通信/数据/联系人/
最合适的回答,由SO网友:madhushankarox 整理而成
对于任何有类似问题的人。您可以使用wp
, wp_head
, wp_footer
或template_redirect
动作挂钩。
在这种情况下,template_redirect
动作钩解决了我的问题。
add_action( \'template_redirect\', \'redirect_visitor\' );
function redirect_visitor() {
// Do your stuff
}