在WordPress中,可以通过以下步骤实现重定向到登录页面并返回到请求的链接:
custom-login.php
(可以根据需要自定义文件名)。在该文件中,使用WordPress提供的登录函数wp_login_form()
来显示登录表单,并添加一个隐藏字段来存储当前页面的URL。<?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
) );
?>
custom-page.php
(可以根据需要自定义文件名)。在该文件中,使用以下代码来处理登录后的重定向。<?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;
}
?>
Custom Page
)。现在,当用户访问网站时,如果未登录,将会自动重定向到登录页面。登录后,管理员将被重定向到后台管理页面,其他用户将被重定向到之前访问的页面。
注意:以上步骤仅提供了一种实现方式,具体实现方法可能因主题或插件的不同而有所差异。
领取专属 10元无门槛券
手把手带您无忧上云