X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

Своя форма входа WordPress

Приклад
  • 2024-11-21
  • 10281 переглядів

  • Дизайн та розробка сайту

Доброго времени суток. 🙂

Если вас интересует вопрос как сделать свою собственную форму входа для WordPress, то вы попали куда надо. В этой статье я покажу, как добавить в нужное место вашей темы свою форму входа на сайт. Такая форма не будет заменой основной, но будет хорошим дополнением. Чаще всего такие формы создаются при разработке уникальных тем или при желании ограничить доступ к странице входа WordPress.

Своя форма входа WordPress

Вы сможете добавить форму и при желании доработать, чтобы добиться нужного вам результата. В этой же статье, будет просто пример основного кода, так что статья рассчитана на людей с определенными навыками. Я считаю, что если вы решились на то чтобы добавлять свои формы. то вы примерно знакомы с WordPress, с версткой и другой мелочевкой, что может понадобится для работы с кодом.

Для начала, вам нужно определится с местом внутри вашей темы, где лучше добавить форму. Я, чаще всего, добавляю такие формы в шапке сайта. Так же можно создать какую-то отдельную страницу или разместить в сайдбаре. Определившись, добавляете примерно такой код:

<div id="login_tp">
<form id="inputs" name="loginform" action="<?php bloginfo( 'url' ) ?>/wp-login.php" method="post">
<input type="text" name="log" id="log" placeholder="Логин"  >
<input type="password" name="pwd" id="pwd"  placeholder="Пароль" >
<input type="submit" name="submit" id="submit" value="Войти" ><br>
<label><input id="rememberme" class="check" type="checkbox" value="forever" name="rememberme" >Запомнить меня</label>
<a href="<?php bloginfo( 'url' ) ?>/wp-login.php?action=lostpassword" title="Восстановление пароля">Забыли пароль?</a>
</form>
<?php if(isset($_GET['login']) && $_GET['login'] == 'failed'){echo '<span>Ошибка авторизации</span>';} ?>
</div>   

По коду видно что это обычная форма входа, заключенная в родительский блок. Форма состоит из двух полей ввода - Логин, Пароль, имеется кнопка входа, чекбокс - Запомнить меня и ссылка - Забыли пароль?. Ссылка - забыли пароль, ведет на стандартную страницу входа. Если вы не хотите давать таой возможности, то удалите ее, ну или можете изменить стандартную форму входа, чтобы она вовсе не была похожа на WordPress. Сделать это можно, воспользовавшись статей - Как изменить страницу входа в консоль WordPress

Можете менять классы, но рекомендую не менять основные параметры полей, они нужны для правильной передачи данных WordPress.

Так же по коду видно, что в конце, предпоследняя строка, есть условие, что определяет удачно ли совершен вход. Если при вход была допущена ошибка, то после формы выведется сообщение - Ошибка авторизации. Можете разместить данный код где вам удобно. Но чтобы он работал, понадобится еще небольшая функция.

Добавлять ее нужно в function.php. Если не знаете куда, то просто в самый конец перед закрывающим тегом PHP ?>. Если его нет, то просто в самый конец.

add_action( 'authenticate', 'form_page_login');
function form_page_login( $user ){
  	$referrer = $_SERVER['HTTP_REFERER'];
  	$error = false;
  	if($_POST['log'] == '' || $_POST['pwd'] == '')
  	{
  		$error = true;
  	}
  	if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') && $error ) {
    	if ( !strstr($referrer, '?login=failed') ) {
        	wp_redirect( $referrer . '?login=failed' );
      	} else {
        	wp_redirect( $referrer );
      	}

    exit;

  	}
}

Теперь, все будет работать. При успешном входе вы попадете в консоль вордпресс. При неправильных данных, появится ошибка. Как и написал в самом начале, форму можно доработать, превратить в часть личного самописного кабинета или добавить к чему то.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 5, в среднем: 3.4 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078