@@ -491,49 +491,58 @@ function wp_registration_url() {
491491 * The login form HTML is echoed by default. Pass a false value for `$echo` to return it instead.
492492 *
493493 * @since 3.0.0
494+ * @since 6.6.0 Added `required_username` and `required_password` arguments.
494495 *
495496 * @param array $args {
496497 * Optional. Array of options to control the form output. Default empty array.
497498 *
498- * @type bool $echo Whether to display the login form or return the form HTML code.
499- * Default true (echo).
500- * @type string $redirect URL to redirect to. Must be absolute, as in "https://example.com/mypage/".
501- * Default is to redirect back to the request URI.
502- * @type string $form_id ID attribute value for the form. Default 'loginform'.
503- * @type string $label_username Label for the username or email address field. Default 'Username or Email Address'.
504- * @type string $label_password Label for the password field. Default 'Password'.
505- * @type string $label_remember Label for the remember field. Default 'Remember Me'.
506- * @type string $label_log_in Label for the submit button. Default 'Log In'.
507- * @type string $id_username ID attribute value for the username field. Default 'user_login'.
508- * @type string $id_password ID attribute value for the password field. Default 'user_pass'.
509- * @type string $id_remember ID attribute value for the remember field. Default 'rememberme'.
510- * @type string $id_submit ID attribute value for the submit button. Default 'wp-submit'.
511- * @type bool $remember Whether to display the "rememberme" checkbox in the form.
512- * @type string $value_username Default value for the username field. Default empty.
513- * @type bool $value_remember Whether the "Remember Me" checkbox should be checked by default.
514- * Default false (unchecked).
499+ * @type bool $echo Whether to display the login form or return the form HTML code.
500+ * Default true (echo).
501+ * @type string $redirect URL to redirect to. Must be absolute, as in "https://example.com/mypage/".
502+ * Default is to redirect back to the request URI.
503+ * @type string $form_id ID attribute value for the form. Default 'loginform'.
504+ * @type string $label_username Label for the username or email address field. Default 'Username or Email Address'.
505+ * @type string $label_password Label for the password field. Default 'Password'.
506+ * @type string $label_remember Label for the remember field. Default 'Remember Me'.
507+ * @type string $label_log_in Label for the submit button. Default 'Log In'.
508+ * @type string $id_username ID attribute value for the username field. Default 'user_login'.
509+ * @type string $id_password ID attribute value for the password field. Default 'user_pass'.
510+ * @type string $id_remember ID attribute value for the remember field. Default 'rememberme'.
511+ * @type string $id_submit ID attribute value for the submit button. Default 'wp-submit'.
512+ * @type bool $remember Whether to display the "rememberme" checkbox in the form.
513+ * @type string $value_username Default value for the username field. Default empty.
514+ * @type bool $value_remember Whether the "Remember Me" checkbox should be checked by default.
515+ * Default false (unchecked).
516+ * @type bool $required_username Whether the username field has the 'required' attribute.
517+ * Default false.
518+ * @type bool $required_password Whether the password field has the 'required' attribute.
519+ * Default false.
515520 *
516521 * }
517522 * @return void|string Void if 'echo' argument is true, login form HTML if 'echo' is false.
518523 */
519524function wp_login_form ( $ args = array () ) {
520525 $ defaults = array (
521- 'echo ' => true ,
526+ 'echo ' => true ,
522527 // Default 'redirect' value takes the user back to the request URI.
523- 'redirect ' => ( is_ssl () ? 'https:// ' : 'http:// ' ) . $ _SERVER ['HTTP_HOST ' ] . $ _SERVER ['REQUEST_URI ' ],
524- 'form_id ' => 'loginform ' ,
525- 'label_username ' => __ ( 'Username or Email Address ' ),
526- 'label_password ' => __ ( 'Password ' ),
527- 'label_remember ' => __ ( 'Remember Me ' ),
528- 'label_log_in ' => __ ( 'Log In ' ),
529- 'id_username ' => 'user_login ' ,
530- 'id_password ' => 'user_pass ' ,
531- 'id_remember ' => 'rememberme ' ,
532- 'id_submit ' => 'wp-submit ' ,
533- 'remember ' => true ,
534- 'value_username ' => '' ,
528+ 'redirect ' => ( is_ssl () ? 'https:// ' : 'http:// ' ) . $ _SERVER ['HTTP_HOST ' ] . $ _SERVER ['REQUEST_URI ' ],
529+ 'form_id ' => 'loginform ' ,
530+ 'label_username ' => __ ( 'Username or Email Address ' ),
531+ 'label_password ' => __ ( 'Password ' ),
532+ 'label_remember ' => __ ( 'Remember Me ' ),
533+ 'label_log_in ' => __ ( 'Log In ' ),
534+ 'id_username ' => 'user_login ' ,
535+ 'id_password ' => 'user_pass ' ,
536+ 'id_remember ' => 'rememberme ' ,
537+ 'id_submit ' => 'wp-submit ' ,
538+ 'remember ' => true ,
539+ 'value_username ' => '' ,
535540 // Set 'value_remember' to true to default the "Remember me" checkbox to checked.
536- 'value_remember ' => false ,
541+ 'value_remember ' => false ,
542+ // Set 'required_username' to true to add the required attribute to username field.
543+ 'required_username ' => false ,
544+ // Set 'required_password' to true to add the required attribute to password field.
545+ 'required_password ' => false ,
537546 );
538547
539548 /**
@@ -594,19 +603,21 @@ function wp_login_form( $args = array() ) {
594603 sprintf (
595604 '<p class="login-username">
596605 <label for="%1$s">%2$s</label>
597- <input type="text" name="log" id="%1$s" autocomplete="username" class="input" value="%3$s" size="20" />
606+ <input type="text" name="log" id="%1$s" autocomplete="username" class="input" value="%3$s" size="20"%4$s />
598607 </p> ' ,
599608 esc_attr ( $ args ['id_username ' ] ),
600609 esc_html ( $ args ['label_username ' ] ),
601- esc_attr ( $ args ['value_username ' ] )
610+ esc_attr ( $ args ['value_username ' ] ),
611+ ( $ args ['required_username ' ] ? ' required="required" ' : '' )
602612 ) .
603613 sprintf (
604614 '<p class="login-password">
605615 <label for="%1$s">%2$s</label>
606- <input type="password" name="pwd" id="%1$s" autocomplete="current-password" spellcheck="false" class="input" value="" size="20" />
616+ <input type="password" name="pwd" id="%1$s" autocomplete="current-password" spellcheck="false" class="input" value="" size="20"%3$s />
607617 </p> ' ,
608618 esc_attr ( $ args ['id_password ' ] ),
609- esc_html ( $ args ['label_password ' ] )
619+ esc_html ( $ args ['label_password ' ] ),
620+ ( $ args ['required_password ' ] ? ' required="required" ' : '' )
610621 ) .
611622 $ login_form_middle .
612623 ( $ args ['remember ' ] ?
0 commit comments