Https://mydomain/wp-admin重定向至wp-login.php?redirect_to=https%3A%2F%2Fmydomain%2Fwp-admin%2F&reauth=1

时间:2021-05-29 作者:Razzupaltuff

无论何时我进入https://mydomain/wp-admin未登录时,我被重定向到

wp-login.php?redirect_to=https%3A%2F%2Fmydomain%2Fwp-admin%2F&reauth=1
在一些帮助下,我创建了以下代码来重定向登录到wp的用户。要转发到所需自定义页面的php url:

function redirect_wp_login_to_custom_login() {
    global $pagenow;
    $redirect_to;
    $current_url = home_url ($_SERVER [\'REQUEST_URI\']); 

    if (\'wp-login.php\' == $pagenow) {
        if (!is_user_logged_in ()) 
            $redirect_to = get_home_url () . \'/login/\';
        else {
            if (is_super_admin() || is_admin())
                $redirect_to = get_home_url () .  \'/wp-admin/\';
            else
                $redirect_to = get_home_url () .  \'/startseite/\';
        }
        wp_safe_redirect ($redirect_to);
        exit;
    }
    else {
        global $wp;
        $login_url = get_home_url () . \'/login/\';
        if (!strcasecmp ($login_url, $current_url) && is_user_logged_in ()) {
            $redirect_to = get_home_url () . \'/user-profile/\';
            //wp_safe_redirect ($redirect_to);
        exit;
        }
    }
}
但是,当输入正确的用户凭据并单击;“登录”;按钮在我的自定义登录表单中,我似乎被转发到wp登录。php。这使得我的上述函数将我重定向到自定义登录表单,因为显然在单击;“登录”;我尚未登录。我如何解决这个问题(除了编写一个在单击“登录”按钮后立即执行的自定义登录函数之外?)

1 个回复
SO网友:Rodgath

可以使用“init”挂钩重定向到站点的任何页面。下面是一个示例代码,演示如何完成此操作。

add_action(\'init\', \'wpse388876_redirect_to_home_page\');
function wpse388876_redirect_to_home_page() {
    
    global $pagenow;

    if (\'wp-login.php\' == $pagenow && (!is_user_logged_in() || !is_super_admin() || !is_admin())) {
        
        $redirect_to = home_url();
        
        wp_safe_redirect($redirect_to);

        exit;
    }
}
所有未登录的用户都将被重定向,但对于登录的用户,超级管理员将不会被重定向。

相关推荐

How to redirect Webp files?

为了提高性能,我将所有图像都用作webp文件,但我已经停止使用并从FTP中删除了它们(仅.webp文件)。现在有404个错误的问题。我想重定向所有。将webp文件转换为jpg、png、gif等。例如:https://www.example.com/wp-content/uploads/2019/04/file.jpg.webp https://www.example.com/wp-content/uploads/2019/04/file.jpeg.webp https://www.exam