WordPress.org

Make WordPress Core

Ticket #21133: 21133.4.patch

File 21133.4.patch, 2.8 KB (added by SergeyBiryukov, 3 years ago)
  • wp-login.php

     
    8585        // Don't allow interim logins to navigate away from the page. 
    8686        if ( $interim_login ) 
    8787                $login_header_url = '#'; 
    88  
    8988        ?> 
    9089        </head> 
    91         <body class="login<?php if ( wp_is_mobile() ) echo ' mobile'; ?>"> 
     90        <body <?php login_body_class(); ?>> 
    9291        <div id="login"> 
    9392                <h1><a href="<?php echo esc_url( $login_header_url ); ?>" title="<?php echo esc_attr( $login_header_title ); ?>"><?php bloginfo( 'name' ); ?></a></h1> 
    9493        <?php 
     
    343342        return $user_id; 
    344343} 
    345344 
     345/** 
     346 * Retrieve current action. 
     347 * 
     348 * @since 3.5.0 
     349 * @access private 
     350 * 
     351 * @return string Requested action. 
     352 */ 
     353function _get_login_action() { 
     354        $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : 'login'; 
     355 
     356        if ( isset( $_GET['key'] ) ) 
     357                $action = 'resetpass'; 
     358 
     359        // validate action so as to default to the login screen 
     360        if ( ! in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login' ), true ) && false === has_filter( 'login_form_' . $action ) ) 
     361                $action = 'login'; 
     362 
     363        return $action; 
     364} 
     365 
     366/** 
     367 * Display the classes for the body element. 
     368 * 
     369 * @since 3.5.0 
     370 * 
     371 * @param string|array $class One or more classes to add to the class list. 
     372 */ 
     373function login_body_class( $class = '' ) { 
     374        echo 'class="' . join( ' ', get_login_body_class( $class ) ) . '"'; 
     375} 
     376 
     377/** 
     378 * Retrieve the classes for the body element as an array. 
     379 * 
     380 * @since 3.5.0 
     381 * 
     382 * @param string|array $class One or more classes to add to the class list. 
     383 * @return array Array of classes. 
     384 */ 
     385function get_login_body_class( $class = '' ) { 
     386        $classes = array( 'login' ); 
     387         
     388        $classes[] = _get_login_action(); 
     389         
     390        if ( is_rtl() ) 
     391                $classes[] = 'rtl'; 
     392         
     393        if ( wp_is_mobile() ) 
     394                $classes[] = 'mobile'; 
     395         
     396        if ( ! empty( $class ) ) { 
     397                if ( ! is_array( $class ) ) 
     398                        $class = preg_split( '#\s+#', $class ); 
     399                $classes = array_merge( $classes, $class ); 
     400        } 
     401         
     402        $classes = array_map( 'esc_attr', $classes ); 
     403         
     404        return array_unique( apply_filters( 'login_body_class', $classes, $class ) ); 
     405} 
     406 
    346407// 
    347408// Main 
    348409// 
    349410 
    350 $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login'; 
     411$action = _get_login_action(); 
    351412$errors = new WP_Error(); 
    352413 
    353 if ( isset($_GET['key']) ) 
    354         $action = 'resetpass'; 
    355  
    356 // validate action so as to default to the login screen 
    357 if ( !in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login' ), true ) && false === has_filter( 'login_form_' . $action ) ) 
    358         $action = 'login'; 
    359  
    360414nocache_headers(); 
    361415 
    362416header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));