mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-04-04 20:54:29 +00:00
Login and Registration: Introduce is_login_screen() function.
This should help determine whether the current request is for the login screen. While it does not save a lot of lines of code, including this function in core aims to save developers some time that would otherwise be spent investigating the most reliable way to solve this problem. Implementation details: * By checking `wp_login_url()`, the function accounts for custom login locations set via the `login_url` filter. * By checking `$_SERVER['SCRIPT_NAME']` directly, instead of `did_action( 'login_form_login' )` or `$pagenow` global, the function can work as early as possible, for example in a must-use plugin. Follow-up to [2481], [6412], [12393], [12732], [15558], [15481], [15746]. Props dcowgill, scribu, donmhico, iandunn, wonderboymusic, nacin, robmiller, kitchin, chriscct7, tazotodua, davidbaumwald, SergeyBiryukov. Fixes #19898. git-svn-id: https://develop.svn.wordpress.org/trunk@53884 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -1140,6 +1140,19 @@ function wp_clone( $object ) {
|
||||
return clone( $object );
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether the current request is for the login screen.
|
||||
*
|
||||
* @since 6.1.0
|
||||
*
|
||||
* @see wp_login_url()
|
||||
*
|
||||
* @return bool True if inside WordPress login screen, false otherwise.
|
||||
*/
|
||||
function is_login_screen() {
|
||||
return false !== stripos( wp_login_url(), $_SERVER['SCRIPT_NAME'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether the current request is for an administrative interface page.
|
||||
*
|
||||
|
||||
21
tests/phpunit/tests/load/isLoginScreen.php
Normal file
21
tests/phpunit/tests/load/isLoginScreen.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Tests for is_login_screen().
|
||||
*
|
||||
* @group load.php
|
||||
* @covers ::is_login_screen
|
||||
*/
|
||||
class Tests_Load_IsLoginScreen extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* @ticket 19898
|
||||
*/
|
||||
public function test_is_login_screen() {
|
||||
$this->assertFalse( is_login_screen() );
|
||||
|
||||
$_SERVER['SCRIPT_NAME'] = '/wp-login.php';
|
||||
|
||||
$this->assertTrue( is_login_screen() );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user