很多网站不想其他人访问wp-login.php登录页面,所以访问WordPress默认登录页面都会定向到指定的页面,比如前端登录注册页面等,今天就分享一下WordPress重定向wp-login.php登录到指定页面教程。
将代码添加到当前主题函数模板functions.php中。
代码一、访问wp-login.php重定向到指定页面。
function zm_custom_login(){
global $pagenow;
if( \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’wp-login.php\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’ == $pagenow && $_GET[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’action\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’]!=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\”logout\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\”) {
wp_redirect(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’https://zmingcx.com/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’);
exit();
}
}
代码二、重定向到指定页面,且不影响重置密码时访问
第一段代码当重置密码时也会跳转,如果你的前端登录注册没有重置密码功能,可以用下面这个代码,即可以阻止访问wp-login.php,同时又不影响重置密码时访问。
// 重定向wp-login.php
add_action(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’init\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’zm_redirect_wp_login\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’);
function zm_redirect_wp_login() {
// WP全局变量
global $pagenow;
// 如果设置了$_GET[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’action\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’],则加载到$action变量中
$action = (isset($_GET[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’action\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’])) ? $_GET[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’action\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’] : \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’;
// 判断是否在登录页面,并且不是重置密码
if( $pagenow == \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’wp-login.php\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’ && ( ! $action || ( $action && ! in_array($action, array(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’logout\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’lostpassword\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’rp\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’resetpass\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’))))) {
// 重定向的网址
$page = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’https://zmingcx.com/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’;
// 重定向
wp_redirect($page);
// 停止执行
exit();
}
}