WordPress.org

Make WordPress Core

Ticket #21133: 21133.3.diff

File 21133.3.diff, 2.7 KB (added by kobenland, 6 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'));