我是wordpress
的新手。我目前正在注册和登录。我有一个页面限制网址http://xyz.com/abc
。此网址需要登录/注册。
我需要在用户注册或登录时将其重定向到此前一个网址。
在登录时我添加了以下钩子:
一
add_filter('login_redirect', 'redirect_previous_page', 10);
function redirect_previous_page(){
global $user;
$request = $_SERVER["HTTP_REFERER"];
if ( in_array( $user->roles[0], array( 'administrator') ) ) {
return admin_url();
return $redirect_to;
} elseif ( in_array( $user->roles[0], array( 'subscriber') ) ) {
return $request;
return $redirect_to;
}
}
这对我有用,但我没有得到如何在注册成功后重定向此网址。我在登录页面上有注册链接
答案 0 :(得分:4)
正如docs中所述,您可以使用: <?php wp_get_referer() ?>
来获取用户在退出之前或登录后访问的最后一个网址。
答案 1 :(得分:2)
if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) ) {
add_filter('login_redirect', 'my_login_redirect', 10, 3);
function my_login_redirect() {
$location = $_SERVER['HTTP_REFERER'];
wp_safe_redirect($location);
exit();
}
}
答案 2 :(得分:0)
这是一种粗略的方式,但您可以在$_SESSION['your_registration_referrer']
处创建$_SERVER["HTTP_REFERER"]
粘贴,并在注册后重定向到此网址。