wp_login_form() WP 3.0.0

Виводить HTML код форми авторизації (входу).

Повертає

null|Строку. Виводить на екран HTML код форми авторизації. Якщо вказати параметр echo=0 , результат буде повернено для подальшої обробки.

Шаблон використання

wp_login_form(array(
	'echo' => true,
	'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
	'form_id' => 'loginform',
	'label_username' => __( 'Username' ),
	'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' => NULL,
	'value_remember' => false
)));

Використання

<?php wp_login_form( $args ); ?>
$args
(рядок/масив)
Масив аргументів, які контролюють результат.


За замовчуванням: параметри за замовчуванням

Аргументи параметра $args

echo
(логічний)
Вивести на екран (1) або повернути (0).


За замовчуванням: 1
redirect
(рядок)
УРЛ на який перекине після авторизації.


Типово: поточна сторінка
form_id
(рядок)
id атрибут тега
<form id=”loginform”> .


За замовчуванням: ‘loginform’
label_username
(рядок)
Текст заголовка поля ім’я користувача.


За замовчуванням: ‘__( ‘Username’ )’
label_password
(рядок)
Текст заголовка поля “пароль”.


За замовчуванням: ‘__( ‘Password’ )’
label_remember
(рядок)
Текст заголовка поля “запам’ятати мене”.


За замовчуванням: ‘__( ‘Remember Me’ )’
label_log_in
(рядок)
Текст кнопки сабміту.


За замовчуванням: ‘__( ‘Log In’ )’
id_username
(рядок)
Значення атрибута id:
<input id=”user_login” />


За замовчуванням: ‘user_login’
id_password
(рядок)
Значення атрибута id:
<input id=”user_login” />


За замовчуванням: ‘user_pass’
id_remember
(рядок)
Значення атрибута id:
<input id=”user_login” />


За замовчуванням: ‘rememberme’
id_submit
(рядок)
Значення атрибута id:
<input id=”user_login” />


За замовчуванням: ‘wp-submit’
remember
(логічний)
Запам’ятати значення полів (1) чи ні (0).


За замовчуванням: 1
value_username
(рядок)
Ім’я користувача за промовчанням.


За замовчуванням: ”
value_remember
(рядок)
Значення атрибута value, поля “запам’ятати мене”. За замовчуванням 1 – галочка відзначена. 0 – галочка знята.


За замовчуванням: 1

Приклади

0

#1 Звичайне відображення форми:

<?php wp_login_form(); ?>

Виведе на екран:

<form name="loginform" id="loginform" action="http://wp-kama.ru/wp-login.php" method="post">

	<p class="login-username">
		<label for="user_login">Логін</label>

		<input type="text" name="log" id="user_login" class="input" value="" size="20" tabindex="10" />
	</p>
	<p class="login-password">
		<label for="user_pass">Пароль</label>
		<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" />
	</p>

	<p class="login-remember"><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> Запам'ятати мене</label></ >

	<p class="login-submit">
		<input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="Увійти" tabindex="100" />
		<input type="hidden" name="redirect_to" value="http://wp-kama.ru/s" />
	</p>

</form>
0

#2 Залишити на тій самій сторінці при введенні невірного логіну/паролю

За умовчанням, якщо в таку форму введено неправильний логи, то користувача перекине на базову сторінку авторизації із зазначенням помилки.

Щоб змінити та залишити користувача на колишній сторінці, навіть якщо він ввів неправильні дані, можна використовувати хук wp_login_failed :

## Залишає користувача на тій самій сторінці при введенні невірного логіна/паролю у формі авторизації wp_login_form()
add_action( 'wp_login_failed', 'my_front_end_login_fail');
function my_front_end_login_fail( $username ) {
	$referrer = $_SERVER['HTTP_REFERER']; // звідки надійшов запит

	// Якщо є referrer і це не сторінка wp-login.php
	if( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
		wp_redirect( add_query_arg('login', 'failed', $referrer)); // Редиркет і додамо параметр запиту ?login = failed
		exit;
	}
}
0

#3 Форма реєстрації WordPress

Для виведення форми реєстрації спеціальна функція не передбачена. Тому форму можна вивести, написавши свій HTML код. Ось приклад такого HTML коду форми реєстрації:

<form id="registerform" action="<?php site_url('wp-login.php?action=register'); ?>" method="post">
	<p>
		<label for="user_login">
			Ім'я користувача<br>
			<input type="text" name="user_login" id="user_login" class="input" value="" size="20" style="">
		</label>
	</p>
	<p>
		<label for="user_email">
			E-mail<br>
			<input type="email" name="user_email" id="user_email" class="input" value="" size="25">
		</label>
	</p>

	<p id="reg_passmail">Підтвердження реєстрації буде надіслано на ваш e-mail.</p>

	class="clear">
	<input type="hidden" name="redirect_to" value="">

	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Реєстрація"></p>
</form>

список змін

З версії 3.0.0Введено.

Код wp_login_form() WP 6.0.2

function wp_login_form( $args = array() ) {
	$defaults = array(
		'echo' => true,
		// Default 'redirect' value таке 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' true to default the "Remember me" checkbox to checked.
		'value_remember' => false,
	);

	/**
	 * Filters default login form output arguments.
	 *
	 * @ Since 3.0.0
	 *
	 * @see wp_login_form()
	 *
	 * @param array $defaults На 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 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 login form.
	 *
	 * Filter evaluates just preceding 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;
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *