gpt4 book ai didi

php - 将用户重定向到他们在登录 Wordpress 后尝试访问的页面

转载 作者:行者123 更新时间:2023-12-04 18:03:58 25 4
gpt4 key购买 nike

我有一个仅限登录用户访问的页面(假设它叫做“/authed-page”)。当未经身份验证的用户访问此页面时,系统会提示他们单击按钮进行登录,然后他们将被带到登录 url:'/login'

现在,在他们登录后,我希望他们被重定向到他们一直试图访问的页面,“/authed-url”,但我不知道该怎么做!

我尝试过的事情:

1) 像这样在我的 functions.php 文件中声明一个函数 redirect_to_authed_url

function redirect_to_authed_url( $redirect_to, $request, $user ) {
return "/post-a-job";
}

然后在 authed-url.php 的模板中,当我检测到用户未登录时,我会这样做:

<?php add_filter( 'login_redirect', 'redirect_to_authed_url', 10, 3 ); ?>

但是我认为这不起作用,因为用户按下了一个按钮,该按钮生成另一个 http 请求,该请求将它们发送到“/login”url,这意味着重定向过滤器丢失了。

2) 当有人访问“/authed-url”但他们没有登录时设置一个名为“redirect_url”的 cookie。然后我在主题的 functions.php 文件中声明它

function redirect_request( $redirect_to, $request, $user ) {
if (isset($_COOKIE['login_redirect']) && strpos($_COOKIE['login_redirect'], 'http') === false) {
$redirect_url = $_COOKIE['login_redirect'];
unset $_COOKIE['login_redirect'];
return $redirect_url;
} else {
return('/');
}
}

这似乎不起作用,因为我不知道在哪里设置 cookie。我不断收到警告:

WARNING: CANNOT MODIFY HEADER INFORMATION - HEADERS ALREADY SENT

我觉得我一定遗漏了一些明显的东西。这应该是一个很常见的要求,不是吗?有什么想法吗?

最佳答案

您可以将 URL 编码的 redirect_to 变量附加到登录 URL 以使其在登录后重定向。

例如:

http://www.example.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.example.com%2Fauthed-url

该 URL 将在您登录后将您重定向到/authed-url。

关于php - 将用户重定向到他们在登录 Wordpress 后尝试访问的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com