首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在wordpress中重定向到登录页面并返回到请求的链接

在WordPress中,可以通过以下步骤实现重定向到登录页面并返回到请求的链接:

  1. 创建一个自定义登录页面模板:在主题文件夹中创建一个新的PHP文件,命名为custom-login.php(可以根据需要自定义文件名)。在该文件中,使用WordPress提供的登录函数wp_login_form()来显示登录表单,并添加一个隐藏字段来存储当前页面的URL。
代码语言:txt
复制
<?php
/*
Template Name: Custom Login
*/

// 获取当前页面的URL
$current_url = esc_url( home_url( $_SERVER['REQUEST_URI'] ) );

// 显示登录表单
wp_login_form( array(
    'redirect' => $current_url, // 设置登录成功后的重定向URL
    'form_id' => 'custom-login-form',
    'label_username' => '用户名',
    'label_password' => '密码',
    'label_remember' => '记住我',
    'label_log_in' => '登录',
    'id_username' => 'user_login',
    'id_password' => 'user_pass',
    'id_remember' => 'rememberme',
    'id_submit' => 'wp-submit',
    'remember' => true
) );
?>
  1. 创建一个自定义页面模板:在主题文件夹中创建一个新的PHP文件,命名为custom-page.php(可以根据需要自定义文件名)。在该文件中,使用以下代码来处理登录后的重定向。
代码语言:txt
复制
<?php
/*
Template Name: Custom Page
*/

// 检查用户是否已登录
if ( is_user_logged_in() ) {
    // 获取当前用户的ID
    $user_id = get_current_user_id();

    // 获取当前用户的角色
    $user_roles = wp_get_current_user()->roles;

    // 根据用户角色进行重定向
    if ( in_array( 'administrator', $user_roles ) ) {
        // 如果是管理员,重定向到后台管理页面
        wp_redirect( admin_url() );
        exit;
    } else {
        // 如果是其他用户,重定向到之前访问的页面
        $redirect_url = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : home_url();
        wp_redirect( $redirect_url );
        exit;
    }
} else {
    // 如果用户未登录,重定向到登录页面
    wp_redirect( wp_login_url() );
    exit;
}
?>
  1. 创建一个新的WordPress页面:在WordPress后台,创建一个新的页面,并选择之前创建的自定义页面模板(Custom Page)。
  2. 更新WordPress设置:在WordPress后台,导航到“设置”->“阅读”,将刚刚创建的页面设置为“首页显示”。

现在,当用户访问网站时,如果未登录,将会自动重定向到登录页面。登录后,管理员将被重定向到后台管理页面,其他用户将被重定向到之前访问的页面。

注意:以上步骤仅提供了一种实现方式,具体实现方法可能因主题或插件的不同而有所差异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券