繁体   English   中英

WordPress全局重定向登录到上一页

[英]Wordpress global redirect login to previous page

我将Wordpress用作需要所有用户登录才能访问的应用程序。 我一直使用的功能

function logoutApp_redirect() {
global $post;
    if( ! is_user_logged_in() ){
        wp_redirect( home_url() . '/dashboard' );
    }
}
add_action( 'template_redirect', 'logoutApp_redirect' );

if用户已注销,那么我想将其返回到他们先前所在的页面。 例如,如果用户在home_url() . '/page1' ); home_url() . '/page1' ); 并且因不活动而注销,登录后将其返回此页面。

我的一些想法是首先使用AJAX并覆盖登录名(这样他们就永远不会离开其所在的页面),并且在登录时删除了覆盖件。 这是我的终极解决方案,但是出于安全考虑,任何具有检查知识的人都可以隐藏覆盖图以查看私人信息。

因此,将重定向添加到wp-login并给出我的第二个想法的理由是,当用户注销时,他们将被重定向,并在登录时将他们返回到上一页。 这是更好的安全性方法,但是这意味着所有未存储到数据库的信息都将丢失。

如何解决可解决这些问题的解决方案?

请注意,我不希望使用插件作为解决方案,而是希望保持functions.php在我的functions.php

您可以使用PHP $_SESSION

if( ! is_user_logged_in() ){
    $_SESSION['user_previous_page'] = $server['REQUEST_URI'];
    wp_redirect( home_url() . '/dashboard' );
}

登录后,您可以将用户转到上一页

 wp_redirect(home_url() . $_SESSION['user_previous_page']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM