WordPress登录跳转到登录前页面就是比如我们在当前在A页面想评论,然后登录是B页面才能登录,这时候我们就需要定位在B页面登录成功后自动跳转到A页面。

WordPress登录跳转到登录前页面的方法-第0张图片

结合以上理论,以下是一个在WordPress中实现登录后跳转到登录前页面的方法代码示例供大家参考学习:

php
// 保存登录前的URL
function save_login_redirect_url() {
if (!is_user_logged_in() &&!isset($_COOKIE['login_redirect_url']) &&!is_admin()) {
$redirect_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on'? "https" : "http")
. "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
setcookie('login_redirect_url', $redirect_url, time() + 3600, COOKIEPATH, COOKIE_DOMAIN);
}
}
add_action('init', 'save_login_redirect_url');

// 登录后重定向到登录前页面
function custom_login_redirect( $redirect_to, $request, $user ) {
if (isset($_COOKIE['login_redirect_url'])) {
$redirect_to = sanitize_text_field($_COOKIE['login_redirect_url']);
setcookie('login_redirect_url', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN);
}
return $redirect_to;
}
add_filter('login_redirect', 'custom_login_redirect', 10, 3);

1. 首先,“save_login_redirect_url”函数的作用是:

在用户未登录、没有设置名为“login_redirect_url”的cookie并且不在管理页面时执行。

它构建了当前页面的URL(包括协议、主机和请求的URI部分)。

然后设置一个名为“login_redirect_url”的cookie,有效期为1小时(3600秒)。

2. 其次,“custom_login_redirect”函数:

它是“login_redirect”过滤器的回调函数。

如果设置了“login_redirect_url”这个cookie,它就会将重定向的目标“$redirect_to”设置为该cookie的值。

然后清除这个cookie,以避免下次登录时出现重定向问题。

最后,请注意这只是一个基本的示例,你可能需要根据具体的需求对代码进行调整,比如添加更多的安全验证等。