首页 > 解决方案 > Wordpress - 基于 IP 地址的重定向

问题描述

我正在制作一个 Wordpress 功能,当用户使用某个 IP 地址时,它会将用户重定向到不同的页面。但是该代码无法正常运行,我无法使其正常工作。

function ip_based_login() 
{
    if ($_SERVER['REMOTE_ADDR'] == '95.81.51.134') 
    {
        wp_redirect("examplewebsite.com/login2"(site_url($wp->request)));
    } 
    else 
    {
        exit;
    }
}

标签: phpwordpress

解决方案


site_url期望附加到站点 url 的路径(例如:site_url('hello') => https://example.com/hello.

$wp->request包含请求的路径,这意味着做site_url($wp->request)将返回您所在的网址。

这是一个工作片段,只需替换$url为您要重定向到的 url。

function ip_based_login() {
    $visitor = $_SERVER['REMOTE_ADDR'];
    $redirectTo = site_url('login2');

    if (preg_match("/95.81.51.134/",$visitor)) {
        wp_redirect($redirectTo);
    }

    exit;
}

请记住,在functions.php不将其挂钩到特定操作的情况下放置此代码段可能会导致无限重定向循环。


推荐阅读