WordPress.org

Make WordPress Core

Ticket #21133: 21133.3.diff

File 21133.3.diff, 2.7 KB (added by kobenland, 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 * Retrieves current action. 
     347 * 
     348 * @since 3.5.0 
     349 * 
     350 * @return string Requested action. 
     351 */ 
     352function _get_login_action() { 
     353        $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : 'login'; 
     354 
     355        if ( isset( $_GET['key'] ) ) 
     356                $action = 'resetpass'; 
     357 
     358        // validate action so as to default to the login screen 
     359        if ( ! in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login' ), true ) && false === has_filter( 'login_form_' . $action ) ) 
     360                $action = 'login'; 
     361 
     362        return $action; 
     363} 
     364 
     365/** 
     366 * Display the classes for the body element. 
     367 * 
     368 * @since 3.5.0 
     369 * 
     370 * @param string|array $class One or more classes to add to the class list. 
     371 */ 
     372function login_body_class( $class = '' ) { 
     373        echo 'class="' . join( ' ', get_login_body_class( $class ) ) . '"'; 
     374} 
     375 
     376/** 
     377 * Retrieve the classes for the body element as an array. 
     378 * 
     379 * @since 3.5.0 
     380 * 
     381 * @param string|array $class One or more classes to add to the class list. 
     382 * @return array Array of classes. 
     383 */ 
     384function get_login_body_class( $class = '' ) { 
     385        $classes = array( 'login' ); 
     386         
     387        $classes[] = _get_login_action(); 
     388         
     389        if ( is_rtl() ) 
     390                $classes[] = 'rtl'; 
     391         
     392        if ( wp_is_mobile() ) 
     393                $classes[] = 'mobile'; 
     394         
     395        if ( ! empty( $class ) ) { 
     396                        $class = preg_split('#\s+#', $class); 
     397                $classes = array_merge($classes, $class); 
     398        } 
     399         
     400        $classes = array_map( 'esc_attr', $classes ); 
     401         
     402        return array_unique( apply_filters( 'login_body_class', $classes, $class ) ); 
     403} 
     404 
    346405// 
    347406// Main 
    348407// 
    349408 
    350 $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login'; 
     409$action = _get_login_action(); 
    351410$errors = new WP_Error(); 
    352411 
    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  
    360412nocache_headers(); 
    361413 
    362414header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));