wordpress登录后跳回当前页

在WordPress中,实现登录后跳回当前页面可以通过以下步骤来实现:

方法一:

  1. 在主题的functions.php文件中添加钩子函数来处理登录后的跳转。
  2. 使用wp_login_url()函数来获取登录链接,并在登录表单中设置返回URL。

下面是实现这个功能的代码示例:

// 在functions.php文件中添加以下代码
 
// 添加自定义登录表单
function my_login_form($login_url, $redirect, $force_reauth = false, $user) {
    return add_query_arg('redirect_to', urlencode($redirect), $login_url);
}
add_filter('login_url', 'my_login_form', 10, 4);
 
// 登录后跳转到之前的页面
function redirect_after_login() {
    if (isset($_REQUEST['redirect_to']) && $_REQUEST['redirect_to']) {
        $redirect_to = $_REQUEST['redirect_to'];
        wp_redirect($redirect_to);
        exit;
    }
}
add_action('wp_login', 'redirect_after_login');

在用户访问需要登录才能访问的页面时,WordPress会自动将用户重定向到登录表单,并附带当前页面的URL作为redirect_to参数。登录表单在login_url钩子中被修改以包含这个参数。在用户登录后,wp_login钩子会触发,并执行redirect_after_login函数,该函数会根据redirect_to参数重定向用户回到之前访问的页面。

方法二:

  1. 打开您的WordPress主题文件夹。
  2. 找到并打开主题的functions.php文件。
  3. 在文件的末尾添加以下代码:
function redirect_after_login() {
    $redirect_url = home_url($_SERVER['REQUEST_URI']);
    return $redirect_url;
}
 
add_filter('login_redirect', 'redirect_after_login');

这段代码将用户重定向到他们登录前所在的页面。

方法三:使用插件实现

如果您不想直接编辑主题的functions.php文件,您还可以使用WordPress插件来实现这个功能。以下是一些常用的插件:

Peter’s Login Redirect: 这个插件允许您轻松设置登录后的重定向规则。
Login Logout Menu: 这个插件允许您添加自定义登录和注销链接到菜单中,并且还可以配置登录后的重定向。

使用插件的好处是,它们通常提供了更多的可视化选项,使您可以轻松地配置登录后的重定向规则,而不需要编写代码。

无论您选择哪种方法,都应该允许登录后自动跳转到当前页。请确保在进行任何更改之前备份您的网站,以防发生意外情况。