我有一个wordpress内联网网站。您必须先登录才能访问任何页面,否则您将被重定向到登录页面:mywebsite.com/login
如果您的菜单中有一个登录表单,那么我找到的所有代码都可以使用,但是如果必须更改页面,则不会。其他答案是面向woocommerce的,不合适。
我想要的是:用户浏览了一个无法访问的页面:mywebsite.com/this-cat/this-page
。
他已重定向到mywebsite.com/login
。成功登录后,他将重定向到他的第一个请求:mywebsite.com/this-cat/this-page
。
目前,仅将用户重定向到首页。
我认为也许可以过滤重定向,将页面的标签放入查询参数中,然后在登录后过滤重定向以重定向到查询参数中的标签
。但是,老实说,我不知道要使用哪个过滤器,..
答案 0 :(得分:0)
感谢Stefano的评论,这就是我解决问题的方法。起初我不明白他的意思,但终于明白了。
add_action( 'wp', 'redirect_non_logged_users_to_specific_page' );
function redirect_non_logged_users_to_specific_page() {
if ( !is_user_logged_in() && !is_page('resetpass') && !is_page('lostpassword') && !is_page('login')) {
global $wp;
wp_redirect( '/login/?redirect_to='.home_url($wp->request ));
exit;
}
}
我记得我在代码中使用了一个函数来重定向未登录的用户。目前,我了解了何时以及如何保存要重定向的URL。
那时,我最大的担忧是,要知道成功登录后如何正确重定向用户。我尝试了许多代码,但是都无法正常工作。然后,我想起了Stefano的评论,并且理解了如何进行。在登录URL中添加redirect_to查询参数会使Wordpress将您重定向到该URL。
$wp->request
返回页面的路径,例如:
/a-category/my-page
home_url()
函数有助于构建此页面的完整URL,例如:
https://my-website.com/a-category/my-page