登录后,当您来自wordpress中的特定页面时,重定向到页面

时间:2014-02-25 08:56:09

标签: php wordpress

我在wordpres中需要一个非常简单的事情 第一个是: 我有一个名为个人资料的特定页面 - 用户可以编辑他/她的信息并更改密码。 如果有人未登录,则应将其重定向到登录页面。 所以,这将是本页面上的内容

 if ( is_user_logged_in() ) {
 } else {
 wp_redirect( 'http://www.mysite.com/wp-login.php' ); exit; }

那部分还可以,但如果有人登录(按下“登录”按钮),我希望他回到以前的网站。所以我提出了这个

 wp_redirect( 'http://www.mysite.com/wp-login.php?=profile' ); exit; }

然后,php会检查地址中是否有?=个人资料,并在登录后使用正确的功能重定向到/个人资料。

可以请某人帮我解决第二个代码问题吗? :)谢谢!

3 个答案:

答案 0 :(得分:3)

如果您想要自定义重定向,可以像这样使用

$returnPath = get_settings('siteurl') . '/login/?redirect_to=' . urlencode($_SERVER['REQUEST_URI']);

<a href="<?php echo $returnPath;?>">Login  link</a>

答案 1 :(得分:1)

我建议您尝试theme my login插件。这样您就可以在登录之前将用户重定向到他所在的同一页面。

答案 2 :(得分:0)

登录后根据用户角色重定向到特定页面

  function my_login_redirect( $redirect_to, $user ) {
    //is there a user to check?
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if ( in_array( 'administrator', $user->roles ) ) {
            // redirect them to the default place
            return $redirect_to;
        } else if(in_array( 'buyer', $user->roles )){
            return home_url().'/unmatched-order/';
        }
                else if(in_array( 'supplier', $user->roles )){
            return home_url().'/products-lists/';
        }
    } else {
        return $redirect_to;
    }
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );