在WordPress和WPML中创建Header.php重定向

时间:2018-01-17 作者:Crashy

我正在开发一个网站,我正在使用WPML在网站上创建不同的语言。我想根据用户所在国家/地区对其进行地理重定向。

我在WPML中使用子目录,因此我有:

www.mydomain。com公司

www.mydomain。com/ie/

www.mydomain。com/ca/

我创建了一个脚本,它允许我获取IP并将一个国家的代码输入到一个变量中(this is what I\'m using), 我还用这个脚本创建了一个标题重定向。这就是我在函数中所做的。php文件:

add_action (\'wp_loaded\', \'my_redirect_function\');

function my_redirect_function() {

  $ip = \'\';

     if (!empty($_SERVER[\'HTTP_CLIENT_IP\']))   //check ip from share internet
     {
       $ip=$_SERVER[\'HTTP_CLIENT_IP\'];
     }
     elseif (!empty($_SERVER[\'HTTP_X_FORWARDED_FOR\']))   //to check ip is pass from proxy
     {
       $ip=$_SERVER[\'HTTP_X_FORWARDED_FOR\'];
     }
     else
     {
       $ip=$_SERVER[\'REMOTE_ADDR\'];
     }

     $country = file_get_contents(\'http://geoip.maxmind.com/a?l=6QT6fNSdtMVw&i=\'.$ip);

     if( $country == \'IE\' ) {

         wp_redirect( get_bloginfo(\'url\') . "/ie/" );

         exit;

     }

}
我不知道为什么我会有一个无休止的循环。

1 个回复
SO网友:ahendwh2

如果您已经在“/ie/”上,代码也会重定向到“/ie/”。防止这种情况的最简单方法是改变

if( $country == \'IE\' ) {

if( $country == \'IE\' && substr( $_SERVER[\'REQUEST_URI\'], 0, 4 ) != \'/ie/\' ) {

结束