WordPress.org

Make WordPress Core

Ticket #11172: 11172.005.diff

File 11172.005.diff, 4.9 KB (added by nacin, 6 years ago)

Possible improvements: docblock changes, extracting args, and a catch-all filter.

  • general-template.php

     
    197197} 
    198198 
    199199/** 
    200  * Provides a simple login form for use anywhere within WordPress. By default, it echos 
    201  * the HTML immediately. Pass array('echo'=>false) to return the string instead. 
     200 * Provides a simple login form for use anywhere within WordPress. 
    202201 * 
     202 * This function does not check to see whether a user is logged in. 
     203 * 
    203204 * @since 3.0.0 
     205 * 
    204206 * @param array $args Configuration options to modify the form output 
    205  * @return Void, or string containing the form 
     207 * @return null|string Pass <code>array( 'echo' => false )</code> to return the form HTML. 
     208 *      Echoes the form by default. 
    206209 */ 
    207210function wp_login_form( $args = array() ) { 
    208         $defaults = array( 'echo' => true, 
    209                                                 'redirect' => site_url( $_SERVER['REQUEST_URI'] ), // Default redirect is back to the current page 
    210                                                 'form_id' => 'loginform', 
    211                                                 'label_username' => __( 'Username' ), 
    212                                                 'label_password' => __( 'Password' ), 
    213                                                 'label_remember' => __( 'Remember Me' ), 
    214                                                 'label_log_in' => __( 'Log In' ), 
    215                                                 'id_username' => 'user_login', 
    216                                                 'id_password' => 'user_pass', 
    217                                                 'id_remember' => 'rememberme', 
    218                                                 'id_submit' => 'wp-submit', 
    219                                                 'remember' => true, 
    220                                                 'value_username' => '', 
    221                                                 'value_remember' => false, // Set this to true to default the "Remember me" checkbox to checked 
    222                                         ); 
     211        $defaults = array( 
     212                'echo' => true, 
     213                'redirect' => site_url( $_SERVER['REQUEST_URI'] ), // Default redirect is back to the current page 
     214                'form_id' => 'loginform', 
     215                'label_username' => __( 'Username' ), 
     216                'label_password' => __( 'Password' ), 
     217                'label_remember' => __( 'Remember Me' ), 
     218                'label_log_in' => __( 'Log In' ), 
     219                'id_username' => 'user_login', 
     220                'id_password' => 'user_pass', 
     221                'id_remember' => 'rememberme', 
     222                'id_submit' => 'wp-submit', 
     223                'remember' => true, 
     224                'value_username' => '', 
     225                'value_remember' => false, // Set this to true to default the "Remember me" checkbox to checked 
     226        ); 
     227 
    223228        $args = wp_parse_args( $args, apply_filters( 'login_form_defaults', $defaults ) ); 
     229        extract( $args, EXTR_SKIP ); 
    224230 
    225231        $form = ' 
    226                 <form name="' . $args['form_id'] . '" id="' . $args['form_id'] . '" action="' . site_url( 'wp-login.php', 'login' ) . '" method="post"> 
     232                <form name="' . $form_id . '" id="' . $form_id . '" action="' . site_url( 'wp-login.php', 'login' ) . '" method="post"> 
    227233                        ' . do_action( 'login_form_top' ) . ' 
    228234                        <p class="login-username"> 
    229                                 <label for="' . esc_attr( $args['id_username'] ) . '">' . esc_html( $args['label_username'] ) . '</label> 
    230                                 <input type="text" name="log" id="' . esc_attr( $args['id_username'] ) . '" class="input" value="' . esc_attr( $args['value_username'] ) . '" size="20" tabindex="10" /> 
     235                                <label for="' . esc_attr( $id_username ) . '">' . esc_html( $label_username ) . '</label> 
     236                                <input type="text" name="log" id="' . esc_attr( $id_username ) . '" class="input" value="' . esc_attr( $value_username ) . '" size="20" tabindex="10" /> 
    231237                        </p> 
    232238                        <p class="login-password"> 
    233                                 <label for="' . esc_attr( $args['id_password'] ) . '">' . esc_html( $args['label_password'] ) . '</label> 
    234                                 <input type="password" name="pwd" id="' . esc_attr( $args['id_password'] ) . '" class="input" value="" size="20" tabindex="20" /> 
     239                                <label for="' . esc_attr( $id_password ) . '">' . esc_html( $label_password ) . '</label> 
     240                                <input type="password" name="pwd" id="' . esc_attr( $id_password ) . '" class="input" value="" size="20" tabindex="20" /> 
    235241                        </p> 
    236242                        ' . do_action( 'login_form_middle' ) . ' 
    237                         ' . ( $args['remember'] ? '<p class="login-remember"><label><input name="rememberme" type="checkbox" id="' . esc_attr( $args['id_remember'] ) . '" value="forever" tabindex="90"' . ( $args['value_remember'] ? ' checked="checked"' : '' ) . ' /> ' . esc_html( $args['label_remember'] ) . '</label></p>' : '' ) . ' 
     243                        ' . ( $remember ? '<p class="login-remember"><label><input name="rememberme" type="checkbox" id="' . esc_attr( $id_remember ) . '" value="forever" tabindex="90"' . ( $value_remember ? ' checked="checked"' : '' ) . ' /> ' . esc_html( $label_remember ) . '</label></p>' : '' ) . ' 
    238244                        <p class="login-submit"> 
    239                                 <input type="submit" name="wp-submit" id="' . esc_attr( $args['id_submit'] ) . '" class="button-primary" value="' . esc_attr( $args['label_log_in'] ) . '" tabindex="100" /> 
    240                                 <input type="hidden" name="redirect_to" value="' . esc_attr( $args['redirect'] ) . '" /> 
     245                                <input type="submit" name="wp-submit" id="' . esc_attr( $id_submit ) . '" class="button-primary" value="' . esc_attr( $label_log_in ) . '" tabindex="100" /> 
     246                                <input type="hidden" name="redirect_to" value="' . esc_attr( $redirect ) . '" /> 
    241247                        </p> 
    242248                        ' . do_action( 'login_form_bottom' ) . ' 
    243249                </form>'; 
    244250 
    245         if ( $args['echo'] ) 
     251        $form = apply_filters( 'wp_login_form', $form, $args ); 
     252        if ( $echo ) 
    246253                echo $form; 
    247254        else 
    248255                return $form;