我正在一个测试站点上工作,我试图通过将以下代码添加到我的主题函数,将所有未登录的用户重定向到登录页面,从而使我的站点成为私有站点。php文件:
function redirect_user() {
if ( ! is_user_logged_in() && ! is_page(array(\'login\',\'register\',\'lostpassword\',\'contact-us\' ))) {
$return_url = esc_url( home_url( \'/login/\' ) );
wp_redirect( $return_url );
exit;
}
}
add_action( \'template_redirect\', \'redirect_user\' );
在一些测试之后,我在尝试重置测试用户的密码时遇到了一个问题。单击链接重置密码后,我将被重定向到登录页面。我正在想办法解决这个问题。
由于重置密码链接是动态生成的链接,因此我无法将其添加到页面列表中,如上面的代码摘录所示。我在查看wordpress文档,没有看到任何有用的东西。任何帮助都将不胜感激。
SO网友:Jeffrey
在查看重置密码链接后,我意识到通过$\\u GET传递了两个变量:key和login。我在redirect\\u user()函数的开头添加了以下代码:
if(isset($_GET[\'key\']) && isset($_GET[\'login\']))
{
return ;
}
它没有解决问题,每当我单击重置密码链接时,仍会被重定向到登录页面,但当我进行以下编辑时:
if(!isset($_GET[\'key\']) && !isset($_GET[\'login\']))
{
return ;
}
它按预期工作,但我不知道为什么。