admin管理员组

文章数量:1391975

I want to redirect WordPress pages as per location e.g domainname/ar, domainname/fr etc, but the code goes into an infinity loop.

Here is the snippest:

function redirect_location(){

    //$UserDetailss =  var_export(unserialize(file_get_contents('.gp?ip=')));
    $UserDetails = unserialize(file_get_contents('.gp?ip='));
    $userCountry =  $UserDetails['geoplugin_countryCode'];

    if($userCountry == 'AR'){
        $url = home_url('/ar/');
    } else if($userCountry == 'FR'){
        $url = home_url('/fr/');
    } else {
        $url = home_url('/in/');
    }

    if (is_page() || is_home()) {
        wp_redirect($url);
        exit;
    }

}
add_action('template_redirect', 'redirect_location');

I want to redirect WordPress pages as per location e.g domainname/ar, domainname/fr etc, but the code goes into an infinity loop.

Here is the snippest:

function redirect_location(){

    //$UserDetailss =  var_export(unserialize(file_get_contents('http://www.geoplugin/php.gp?ip=')));
    $UserDetails = unserialize(file_get_contents('http://www.geoplugin/php.gp?ip='));
    $userCountry =  $UserDetails['geoplugin_countryCode'];

    if($userCountry == 'AR'){
        $url = home_url('/ar/');
    } else if($userCountry == 'FR'){
        $url = home_url('/fr/');
    } else {
        $url = home_url('/in/');
    }

    if (is_page() || is_home()) {
        wp_redirect($url);
        exit;
    }

}
add_action('template_redirect', 'redirect_location');
Share Improve this question edited Feb 20, 2020 at 9:57 fuxia 107k39 gold badges255 silver badges459 bronze badges asked Feb 20, 2020 at 7:32 ShadowShadow 685 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

Us this code instead:

function redirect_location(){

    global $wp;

    $current_url = home_url( $wp->request );

    $UserDetails = unserialize(file_get_contents( 'http://www.geoplugin/php.gp?ip=' ) );
    $userCountry =  $UserDetails['geoplugin_countryCode'];

    if($userCountry == 'AR'){
        $url = home_url('/ar/');
    } else if($userCountry == 'FR'){
        $url = home_url('/fr/');
    } else {
        $url = home_url('/in/');
    }

    if( ( is_page() || is_home() ) && ( strpos( $current_url, $url ) === false ) )  {

        wp_redirect($url);
        exit;
    }

}
add_action('template_redirect', 'redirect_location');

本文标签: page templatewpredirect goes to infinity loop