WordPress函数:wp_login_form 登录表单

江河/ 2023年04月23日/ WordPress/ 浏览 1168

函数原型:


wp_login_form( array $args = array() ): void|string


提供一个简单的登录表单,可在WordPress中的任何地方使用。


参数说明:

$args 数组中包含以下字段:


echo,默认 true,会回显登录表单HTML。为$echo传递 false ,将以字符串的形式返回。


redirect,登录后要调转的页面URL-应当是一个绝对路径。


form_id,form 表单的 id 属性值。默认:'loginform'。


label_username,用户名或电子邮件地址字段的标签。默认:'用户名或电子邮件地址'。


label_password,密码字段的标签。默认:'密码'。


label_remember,是否记住密码的标签。默认:'记住我'。


label_login_in,登录按钮上的文字。默认:'登录'。


id_username,用户名或电子邮件地址字段的 ID 属性值。默认:'user_login'。


id_password,密码字段的 ID 属性值。默认:'user_pass'。


id_remember,是否记住密码字段的 ID 属性值。默认:'remenberme'。


id_submit,提交按钮的 ID 属性值。默认:'wp-submit'。


remember,是否显示"记住密码"控件。


value_username,用户名的默认值。


value_remember,是否记住密码的默认值。默认:false。


函数源码:


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,
	);

	$args = wp_parse_args( $args, apply_filters( 'login_form_defaults', $defaults ) );

	$login_form_top = apply_filters( 'login_form_top', '', $args );

	$login_form_middle = apply_filters( 'login_form_middle', '', $args );

	$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" spellcheck="false" 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;
	}
}


包含钩子:


过滤要显示在登录表单底部的内容。


apply_filters( 'login_form_bottom', string $content, array $args )


筛选默认的登录表单输出参数。


apply_filters( 'login_form_defaults', array $defaults )


筛选要显示在登录表单中间的内容。


apply_filters( 'login_form_middle', string $content, array $args )


过滤要显示在登录表单顶部的内容。


apply_filters( 'login_form_top', string $content, array $args )


使用举例:


<?php wp_login_form(); ?>


发表评论

暂无评论,抢个沙发...

客服 工单