WordPress登录重定向_无法工作


WordPress Login redirect_to not working

我正在使用WordPress 3.7.1开发一个网站,并试图在登录时通过redirect_toURL参数重定向用户。

我已经验证了登录表单后端看到了redirect_toGET参数,并且登录提交包括redirect_toPOST值。。。但这是不起作用的地方。

删除了链接和用户凭据

登录后(对于我的管理员帐户和本文中提供的订阅服务器帐户),用户将被带到WP面板,而不是redirect_to参数中的URL。

我确实设置了allowed_redirect_hosts,在自定义插件文件中有以下代码(基本上就是这样)。

add_filter( 'allowed_redirect_hosts' , 'glue_allowed_redirect_hosts' , 10 );
function glue_allowed_redirect_hosts($content){
    $content[] = 'app.realestategradschool.com';
    $content[] = 'dev-app.realestategradschool.com';
    $content[] = 'app.realestategradschool.local';
    return $content;
}

我已经禁用了所有其他插件,试图解决这个问题。

编辑:我不能使用login_redirect,因为我不想重定向所有登录。。。只有当访问者从另一个网站发送到登录页面时(使用oAuth登录…oAuth有效…只是不重定向)

编辑:工作解决方案:

function glue_login_redirect($redirect_to,$request='',$user=null){
    //using $_REQUEST because when the login form is submitted the value is in the POST
    if(isset($_REQUEST['redirect_to'])){
        $redirect_to = $_REQUEST['redirect_to'];
    }
    return $redirect_to;
}
add_filter('login_redirect','glue_login_redirect',999);

您可以使用login_redirect过滤器。请参阅此处http://codex.wordpress.org/Plugin_API/Filter_Reference/login_redirect

我想这就是你想要的。

这通常会重定向所有登录。为了能够仅在需要时重定向,可以在URL中使用查询字符串参数。检查参数,如果存在重定向。

尝试将其添加到模板函数.php文件中:

add_action( 'login_form' , 'glue_login_redirect' );
function glue_login_redirect() {
    global $redirect_to;
    if (!isset($_GET['redirect_to'])) {
        $redirect_to = 'YOURURLHERE';
    }
    else{
        $redirect_to = $_GET['redirect_to'];
    }
}

也许这段代码对您有所帮助。

<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>" /> 

它将用户重定向到登录位置。实例如果你从主页或帖子登录。它的登录然后重定向回主页或登录页面。

此代码的主要部分是:

<?php echo $_SERVER['REQUEST_URI']; ?>