让WordPress在登录以后返回当前页面
2011年09月23日默认情况下,WordPress在登陆之后会直接进入管理后台,这对于非管理员的用户来说没有什么意义。如何让登录以后返回当前的页面呢?可以通过修改wp-login.php来实现。
首先在其前面添加如下代码,
if (!isset($_SESSION))
{
session_start(); //创建一个session会话
session_regenerate_id();
}
if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != ''
&& strpos($_SERVER['HTTP_REFERER'],'admin') == false
&& strpos($_SERVER['HTTP_REFERER'],'login') == false)
{
// 登陆前的页面地址
// 如果你想登陆后返回首页,请将 $_SERVER['HTTP_REFERER'] 改成 'http://你的首页网址'
$_SESSION["REFERER"] = $_SERVER['HTTP_REFERER'];
}
然后查找以下代码:
<input type="hidden" name="redirect_to" value="<?php echo esc_attr($redirect_to); ?>" />
将其改成:
<input type="hidden" name="redirect_to" value="<?php if ( isset($_SESSION["REFERER"]) ) { echo $_SESSION["REFERER"]; } else { echo esc_attr($redirect_to); } ?>" />
如果需要logout的时候也跳转回当前页面,则可以查找:
$redirect_to = !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : 'wp-login.php?loggedout=true';
将其改成:
if( !empty( $_REQUEST['redirect_to'] ) ){
$redirect_to = $_REQUEST['redirect_to'];
}else{
if ( isset($_SESSION["REFERER"]) ) {
$redirect_to = $_SESSION["REFERER"];
} else {
$redirect_to = 'wp-login.php?loggedout=true';
}
}
归类: WORDPRESS