系统登录界面(wordpress登录界面检测)

2023-04-04T12:38:08

WordPress 6.1 将新增一个函数 is_login_screen() 用于判断当前是不是登录界面,这个函数还是相对较简单,只要当前请求的页面是登录界面,就返回 true ,其他情况则返回 false

这个函数提供了快速判断登陆界面的方法,我之前在「简单的判断 WordPress 的登录页面的代码,我改了5个版本」的文章中也写过一个函数 wpjam_is_login 也实现了类似的功能。

但是 is_login_screen() 考虑得更加周全,自定义登录界面也考虑进去了,它是通过直接检测 $_SERVER['SCRIPT_NAME'] 而不是通过 did_action( 'login_form_login' ) 或者全局变量 $pagenow 来实现的,这样该函数就可以在尽早的情况下就能处理。

function is_login_screen() {
	return false !== stripos( wp_login_url(), $_SERVER['SCRIPT_NAME'] );
}

下面的例子中,就是在 init action 中实现在登陆界面显示一段欢迎信息,这个登录界面检测就考虑了自定义的登陆界面:

function add_text_to_login() {
    if ( is_login_screen() ) {
        echo( "<h1>欢迎登录!</h1>" );
    }
}
add_action( 'init', 'add_text_to_login' );