On this page
wp_login_form( array $args = array() ): void|string
Provides a simple login form for use anywhere within WordPress.
Description
The login form HTML is echoed by default. Pass a false value for $echo to return it instead.
Parameters
$argsarray Optional-
Array of options to control the form output.
echoboolWhether to display the login form or return the form HTML code.
Default true (echo).redirectstringURL to redirect to. Must be absolute, as in "<a href="https://example.com/mypage/">https://example.com/mypage/</a>".
Default is to redirect back to the request URI.form_idstringID attribute value for the form. Default'loginform'.label_usernamestringLabel for the username or email address field. Default 'Username or Email Address'.label_passwordstringLabel for the password field. Default'Password'.label_rememberstringLabel for the remember field. Default 'Remember Me'.label_log_instringLabel for the submit button. Default 'Log In'.id_usernamestringID attribute value for the username field. Default'user_login'.id_passwordstringID attribute value for the password field. Default'user_pass'.id_rememberstringID attribute value for the remember field. Default'rememberme'.id_submitstringID attribute value for the submit button. Default'wp-submit'.rememberboolWhether to display the "rememberme" checkbox in the form.value_usernamestringDefault value for the username field.value_rememberboolWhether the "Remember Me" checkbox should be checked by default.
Default false (unchecked).
Default:
array()
Return
void|string Void if 'echo' argument is true, login form HTML if 'echo' is false.
Source
File: wp-includes/general-template.php. View all references
function wp_login_form( $args = array() ) {
$defaults = array(
'echo' => true,
// Default 'redirect' value takes the user back to the request URI.
'redirect' => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
'form_id' => 'loginform',
'label_username' => __( 'Username or Email Address' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'remember' => true,
'value_username' => '',
// Set 'value_remember' to true to default the "Remember me" checkbox to checked.
'value_remember' => false,
);
/**
* Filters the default login form output arguments.
*
* @since 3.0.0
*
* @see wp_login_form()
*
* @param array $defaults An array of default login form arguments.
*/
$args = wp_parse_args( $args, apply_filters( 'login_form_defaults', $defaults ) );
/**
* Filters content to display at the top of the login form.
*
* The filter evaluates just following the opening form tag element.
*
* @since 3.0.0
*
* @param string $content Content to display. Default empty.
* @param array $args Array of login form arguments.
*/
$login_form_top = apply_filters( 'login_form_top', '', $args );
/**
* Filters content to display in the middle of the login form.
*
* The filter evaluates just following the location where the 'login-password'
* field is displayed.
*
* @since 3.0.0
*
* @param string $content Content to display. Default empty.
* @param array $args Array of login form arguments.
*/
$login_form_middle = apply_filters( 'login_form_middle', '', $args );
/**
* Filters content to display at the bottom of the login form.
*
* The filter evaluates just preceding the closing form tag element.
*
* @since 3.0.0
*
* @param string $content Content to display. Default empty.
* @param array $args Array of login form arguments.
*/
$login_form_bottom = apply_filters( 'login_form_bottom', '', $args );
$form =
sprintf(
'<form name="%1$s" id="%1$s" action="%2$s" method="post">',
esc_attr( $args['form_id'] ),
esc_url( site_url( 'wp-login.php', 'login_post' ) )
) .
$login_form_top .
sprintf(
'<p class="login-username">
<label for="%1$s">%2$s</label>
<input type="text" name="log" id="%1$s" autocomplete="username" class="input" value="%3$s" size="20" />
</p>',
esc_attr( $args['id_username'] ),
esc_html( $args['label_username'] ),
esc_attr( $args['value_username'] )
) .
sprintf(
'<p class="login-password">
<label for="%1$s">%2$s</label>
<input type="password" name="pwd" id="%1$s" autocomplete="current-password" class="input" value="" size="20" />
</p>',
esc_attr( $args['id_password'] ),
esc_html( $args['label_password'] )
) .
$login_form_middle .
( $args['remember'] ?
sprintf(
'<p class="login-remember"><label><input name="rememberme" type="checkbox" id="%1$s" value="forever"%2$s /> %3$s</label></p>',
esc_attr( $args['id_remember'] ),
( $args['value_remember'] ? ' checked="checked"' : '' ),
esc_html( $args['label_remember'] )
) : ''
) .
sprintf(
'<p class="login-submit">
<input type="submit" name="wp-submit" id="%1$s" class="button button-primary" value="%2$s" />
<input type="hidden" name="redirect_to" value="%3$s" />
</p>',
esc_attr( $args['id_submit'] ),
esc_attr( $args['label_log_in'] ),
esc_url( $args['redirect'] )
) .
$login_form_bottom .
'</form>';
if ( $args['echo'] ) {
echo $form;
} else {
return $form;
}
}
Hooks
- apply_filters( 'login_form_bottom',
string $content ,array $args ) -
Filters content to display at the bottom of the login form.
- apply_filters( 'login_form_defaults',
array $defaults ) -
Filters the default login form output arguments.
- apply_filters( 'login_form_middle',
string $content ,array $args ) -
Filters content to display in the middle of the login form.
- apply_filters( 'login_form_top',
string $content ,array $args ) -
Filters content to display at the top of the login form.
Related
Uses
| Uses | Description |
|---|---|
| site_url() wp-includes/link-template.php | Retrieves the URL for the current site where WordPress application files (e.g. wp-blog-header.php or the wp-admin/ folder) are accessible. |
| is_ssl() wp-includes/load.php | Determines if SSL is used. |
| __() wp-includes/l10n.php | Retrieves the translation of $text. |
| esc_attr() wp-includes/formatting.php | Escaping for HTML attributes. |
| esc_url() wp-includes/formatting.php | Checks and cleans a URL. |
| esc_html() wp-includes/formatting.php | Escaping for HTML blocks. |
| wp_parse_args() wp-includes/functions.php | Merges user defined arguments into defaults array. |
| apply_filters() wp-includes/plugin.php | Calls the callback functions that have been added to a filter hook. |
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_login_form