Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当您从wordpress中的特定页面登录后重定向到页面_Php_Wordpress - Fatal编程技术网

Php 当您从wordpress中的特定页面登录后重定向到页面

Php 当您从wordpress中的特定页面登录后重定向到页面,php,wordpress,Php,Wordpress,我需要一个非常简单的单词 第一个是: 我有一个名为profile的特定页面,当用户可以编辑他/她的信息和更改密码时。 如果有人没有登录-他应该被重定向到登录页面。 所以,它会出现在这一页上 if ( is_user_logged_in() ) { } else { wp_redirect( 'http://www.mysite.com/wp-login.php' ); exit; } 这是可以的,但是如果有人登录(按下“登录”按钮),我希望他返回到以前的站点。所以我想到了这个 wp_r

我需要一个非常简单的单词 第一个是: 我有一个名为profile的特定页面,当用户可以编辑他/她的信息和更改密码时。 如果有人没有登录-他应该被重定向到登录页面。 所以,它会出现在这一页上

 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将检查地址中是否有?=profile,并在登录后使用适当的函数重定向到/profile


有人能帮我写第二行代码吗?:)谢谢

我建议您尝试使用插件。这将允许您在登录后将用户重定向到他所在的同一页面,然后再登录。

我建议您尝试使用插件。这将允许您在登录后将用户重定向到他所在的同一页面,然后再登录。

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

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

<a href="<?php echo $returnPath;?>">Login  link</a>
$returnPath=get_设置('siteurl')。'/登录/?将_重定向到='。urlencode($_服务器['REQUEST_URI']);

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

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

<a href="<?php echo $returnPath;?>">Login  link</a>
$returnPath=get_设置('siteurl')。'/登录/?将_重定向到='。urlencode($_服务器['REQUEST_URI']);

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

  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 );

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

  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 );

不需要插件,WordPress可以默认设置为该插件(请参阅开发人员提供的答案)不需要插件,WordPress可以默认设置为该插件(请参阅开发人员提供的答案)。在我的WordPress实例中,它是
/wp login.php
而不是
/login/
,但是
重定向到=
参数就是这样工作的。我想这会让我在登录后重定向。所以我应该改变这个值?wordpress现在如何将我重定向到my/profile页面?很抱歉,我不是php专家:(谢谢你的帮助!你应该替换“home.com”使用
$returnPath
。现在如果你想直接登录个人资料页面。它将按照你的方式工作。Wordpress在获得参数
时重定向到特定页面,重定向到
…因此你可以设置,如果你不返回home.com,只需重定向到个人资料页面。我认为我做的一切都不好:($returnPath=get\u设置('siteurl')。/wp login.php?重定向到='.urlencode($\u SERVER['REQUEST\u URI']);我正在使用它,它会一直在最后添加/wp-login.php。每次,不管我从哪个站点进入。当您重定向到
$returnPath时(我确信您正在将页面重定向到$returnPath)
,你是要
wp login.php吗?重定向到=…
?在我的WordPress实例中,它是
/wp login.php
,而不是
/login/
,但是
重定向到=
参数就是这样工作的。我认为这会在登录后重定向我。所以我应该更改该值吗?现在重定向我时WordPress会怎么做到my/profile页面?很抱歉我不是php专家:(谢谢你的帮助!你应该替换“home.com”使用
$returnPath
。现在如果你想直接登录个人资料页面。它将按照你的方式工作。Wordpress在获得参数
时重定向到特定页面,重定向到
…因此你可以设置,如果你不返回home.com,只需重定向到个人资料页面。我认为我做的一切都不好:($returnPath=get\u设置('siteurl')。/wp login.php?重定向到='.urlencode($\u SERVER['REQUEST\u URI']);我正在使用它,它会一直在最后添加/wp-login.php。每次,不管我从哪个站点进入。当您重定向到
$returnPath时(我确信您正在将页面重定向到$returnPath)
,您正在进行
wp login.php吗?重定向到=…