X
Заказать услугу

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

Плагины и Шаблоны для Wordpress
  • 2019-01-18
  • 3570 просмотр

    2 комментарий

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

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

Если вас интересует вопрос как сделать свою собственную форму входа для 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
Проголосовало: 2, в среднем: 5 из 5
Читайте также
Опубликовано 2 комментария

Добавить комментарий

Чтобы оставить комментарий - заполните поля ниже. Ваш e-mail не будет опубликован. Все поля обязательны

Нажмите, чтобы добавить код в комментарий. Далее добавьте свой код внутрь тегов <code> тут код </code>
Я ознакомлен(а) с политикой конфиденциальности и даю согласие на обработку персональных данных*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.