将默认登录页面重定向到自定义页面

时间:2015-02-07 作者:alex

我想将默认WordPress登录页面重定向到自定义登录页面。我正在插件中添加以下代码:

if (!is_user_logged_in()) {
    wp_redirect( wp_login_url( $redirect ) );
    exit();
}
但它给出了一个错误:

Fatal error: Call to undefined function is_user_logged_in()
为什么会发生这种情况,我该如何解决?谢谢

1 个回复
SO网友:Jonathan Wondrusch

一般来说,你需要告诉WordPress什么时候做事情。如果您只是将代码放在插件中,那么您就没有向WordPress提供何时执行命令的信息,并且您还冒着不需要定义的函数的风险。

现在,您的代码是这样说的:“如果有人没有登录,请始终将他们重定向到常规登录URL”,这听起来与您的尝试相反。

尝试function 并将其附加到hook. 下面是一个示例:

function wpse_177404_login_screen_redirect()
{
    global $pagenow;

    if ($pagenow == \'wp-login.php\' && !is_user_logged_in()) {
        wp_redirect(\'http://your-site.com/custom-login/\');
        exit;
    }
}
add_action(\'init\', \'wpse_177404_login_screen_redirect\');
这样,您就可以告诉WordPress检查页面是否为wp登录。每次加载php时,如果有人没有登录,请将他们重定向到您选择的新页面。

当您过度使用这些类型的核心功能时,要小心,因为这也会影响密码重置和注册,并且很容易让您的用户感到沮丧。

结束