WordPress, Дизайн

Логин панель в WordPress

Вам надоела или не нравиться стандартная логин панель (Login Form) в WordPress, или у вас блог с возможностью регистрации и Вам хотелось бы изменить оформление входа на сайт, тогда читайте далее. Есть несколько способов изменения: – С помощью плагинов; – с помощью изменения кода. В данном уроке рассмотрим второй вариант.

 

Первое, что нам следует сделать это открыть файл function.php вашей темы, который находится в wp-content/themes/имя вашей темы и добавить код следующего содержания:

function custom_login() {
 echo '<link rel="stylesheet" type="text/css" href="' . get_bloginfo('template_directory') . '/custom-login/custom-login.css" />';
}
add_action('login_head', 'custom_login');

Далее создайте папку custom-login и уже в этой папке создайте файл со стилями custom-login.css.

Так как структура тем WordPress у всех разная, давайте сначала создадим HTML разметку, как будет первоначально выглядеть наша форма:

 

<div>
	<h1>Войти</h1>
	<form action="#">
		<input type="text" name="username" placeholder="Имя пользователя">
		<input type="password" name="password" placeholder="Пароль">
		<span>
			<input type="checkbox" name="checkbox">
			<label for="checkbox">Запомнить</label>
		</span>
		<input type="submit" value="Войти">
	</form>
</div>

Давайте приступим к созданиям стилей нашей будущей логин панели.

Сначала удалим отступы и границы у тех элементов, которые будем использовать:

.login form,
.login form h1,
.login form span,
.login form input,
.login form label {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
}

Далее зададим общий вид контейнера, добавим положение на страницы, фиксированные ширину и высоту, цвет фона, закругленные углы и тени:

.login form {
	position: relative;
	width: 200px;
	height: 200px;
	padding: 15px 25px 0 50px;
	margin-left: 470px;
	cursor: default;

	background-color: #141517;

	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;

	-webkit-box-shadow: 0px 1px 1px 0px rgba(255,255,255, .2), inset 0px 1px 1px 0px rgb(0,0,0);
	-moz-box-shadow: 0px 1px 1px 0px rgba(255,255,255, .2), inset 0px 1px 1px 0px rgb(0,0,0);
	box-shadow: 0px 1px 1px 0px rgba(255,255,255, .2), inset 0px 1px 1px 0px rgb(0,0,0);
}

Чтобы создать стрелку мы будем использовать :перед селектором, чтобы вставить его на страницу:

.login form:before {
	position: absolute;
	top: -12px;
	left: 10px;

	width: 0px;
	height: 0px;
	content: '';

	border-bottom: 10px solid #141517;
	border-right: 10px solid #141517;
	border-top: 10px solid transparent;
	border-left: 10px solid transparent;
}

Для заголовка формы добавим некоторые основные стили (цвет, шрифт, размер)

.login form	h1 {
	line-height: 40px;
	font-family: 'Myriad Pro', sans-serif;
	font-size: 22px;
	font-weight: normal;
	color: #e4e4e4;
}

Посмотрим, что у нас уже получилось:

Приступим к основой стилизации полей ввода:

.login form input[type=text],
.login form input[type=password],
.login form input[type=submit] {
	line-height: 14px;
	margin: 10px 0;
	padding: 6px 15px;
	border: 0;
	outline: none;
	font-family: Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold;
	text-shadow: 0px 1px 1px rgba(255,255,255, .2);
	-webkit-border-radius: 26px;
	-moz-border-radius: 26px;
	border-radius: 26px;
	-webkit-transition: all .15s ease-in-out;
	-moz-transition: all .15s ease-in-out;
	-o-transition: all .15s ease-in-out;
	transition: all .15s ease-in-out;
}

Отлично, теперь добавим стили для полей ввода пароля и имени пользователя. Сделаем градиент серого фона и тени, сделаем фиксированную ширину и добавим цвет текста:

.login-form input[type=text],
.login-form input[type=password],
{
	color: #686868;
	width: 170px;
	-webkit-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6);
	-moz-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6);
	box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6);
	background: #989898;
	background: -moz-linear-gradient(top,  #ffffff 0%, #989898 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#989898));
	background: -webkit-linear-gradient(top,  #ffffff 0%,#989898 100%);
	background: -o-linear-gradient(top,  #ffffff 0%,#989898 100%);
	background: -ms-linear-gradient(top,  #ffffff 0%,#989898 100%);
	background: linear-gradient(top,  #ffffff 0%,#989898 100%);
}

При наведении на поля ввода добавим теней:

.login-form input[type=text]:hover,
.login-form input[type=password]:hover {
	-webkit-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6), 0px 0px 5px rgba(255,255,255, .5);
	-moz-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6), 0px 0px 5px rgba(255,255,255, .5);
	box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6), 0px 0px 5px rgba(255,255,255, .5);
}

Для полей ввода сделаем градиент с помощью CSS 3:

.login-form input[type=text]:focus,
.login-form input[type=password]:focus {
	background: #e1e1e1;
	background: -moz-linear-gradient(top,  #ffffff 0%, #e1e1e1 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e1e1e1));
	background: -webkit-linear-gradient(top,  #ffffff 0%,#e1e1e1 100%);
	background: -o-linear-gradient(top,  #ffffff 0%,#e1e1e1 100%);
	background: -ms-linear-gradient(top,  #ffffff 0%,#e1e1e1 100%);
	background: linear-gradient(top,  #ffffff 0%,#e1e1e1 100%);
}

Выравниваем кнопку “Войти” с помощью float:

.login-form input[type=submit] {
	float: right;
	cursor: pointer;
	color: #445b0f;
	-webkit-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .45), 0px 1px 1px 0px rgba(0,0,0, .3);
	-moz-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .45), 0px 1px 1px 0px rgba(0,0,0, .3);
	box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .45), 0px 1px 1px 0px rgba(0,0,0, .3);
}

Добавим при наведении на кнопку стилей:

.login-form input[type=submit]:hover {
	-webkit-box-shadow: inset 1px 1px 3px 0px rgba(255,255,255, .8), 0px 1px 1px 0px rgba(0,0,0, .6);
	-moz-box-shadow: inset 1px 1px 3px 0px rgba(255,255,255, .8), 0px 1px 1px 0px rgba(0,0,0, .6);
	box-shadow: inset 1px 1px 3px 0px rgba(255,255,255, .8), 0px 1px 1px 0px rgba(0,0,0, .6);
}

.login-form input[type=submit]:active {
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;
}

Покрасим нашу кнопку с помощью градиента:

.login-form input[type=submit],
.js .login-form span.checked:before {
	background: #a5cd4e;
	background: -moz-linear-gradient(top,  #a5cd4e 0%, #6b8f1a 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a5cd4e), color-stop(100%,#6b8f1a));
	background: -webkit-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%);
	background: -o-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%);
	background: -ms-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%);
	background: linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%);
}

Посмотрим, что у нас получилось:

Отлично, то что доктор прописал.

Наш конечный стиль будет выглядеть следующим образом:

.login form,
.login form h1,
.login form span,
.login form input,
.login form label {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
}
.login form {
	position: relative;
	width: 200px;
	height: 200px;
	padding: 15px 25px 0 50px;
	margin-left: 470px;
	cursor: default;
	background-color: #141517;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
	-webkit-box-shadow: 0px 1px 1px 0px rgba(255,255,255, .2), inset 0px 1px 1px 0px rgb(0,0,0);
	-moz-box-shadow: 0px 1px 1px 0px rgba(255,255,255, .2), inset 0px 1px 1px 0px rgb(0,0,0);
	box-shadow: 0px 1px 1px 0px rgba(255,255,255, .2), inset 0px 1px 1px 0px rgb(0,0,0);
}
.login form span.jss
{
	width:100px;
}
.login form:before {
	position: absolute;
	top: -12px;
	left: 10px;
	width: 0px;
	height: 0px;
	content: '';
	border-bottom: 10px solid #141517;
	border-right: 10px solid #141517;
	border-top: 10px solid transparent;
	border-left: 10px solid transparent;
}
.login form	h1 {
	line-height: 40px;
	font-family: 'Myriad Pro', sans-serif;
	font-size: 22px;
	font-weight: normal;
	color: #e4e4e4;
}
.login form input[type=text],
.login form input[type=password],
.login form input[type=submit] {
	line-height: 14px;
	margin: 10px 0;
	padding: 6px 15px;
	border: 0;
	outline: none;
	font-family: Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold;
	text-shadow: 0px 1px 1px rgba(255,255,255, .2);
	-webkit-border-radius: 26px;
	-moz-border-radius: 26px;
	border-radius: 26px;
	-webkit-transition: all .15s ease-in-out;
	-moz-transition: all .15s ease-in-out;
	-o-transition: all .15s ease-in-out;
	transition: all .15s ease-in-out;
}
.login form input[type=text],
.login form input[type=password],
.login form span {
	color: #686868;
	width: 170px;
}
.login form input[type=text]:hover,
.login form input[type=password]:hover {
	-webkit-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6), 0px 0px 5px rgba(255,255,255, .5);
	-moz-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6), 0px 0px 5px rgba(255,255,255, .5);
	box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .6), 0px 0px 5px rgba(255,255,255, .5);
}

.login form input[type=text]:focus,
.login form input[type=password]:focus {
	background: #e1e1e1;
	background: -moz-linear-gradient(top,  #ffffff 0%, #e1e1e1 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e1e1e1));
	background: -webkit-linear-gradient(top,  #ffffff 0%,#e1e1e1 100%);
	background: -o-linear-gradient(top,  #ffffff 0%,#e1e1e1 100%);
	background: -ms-linear-gradient(top,  #ffffff 0%,#e1e1e1 100%);
	background: linear-gradient(top,  #ffffff 0%,#e1e1e1 100%);
}

.login form input[type=submit],
.login form span.checked:before {
	float: right;
	cursor: pointer;
	color: #445b0f;
	-webkit-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .45), 0px 1px 1px 0px rgba(0,0,0, .3);
	-moz-box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .45), 0px 1px 1px 0px rgba(0,0,0, .3);
	box-shadow: inset 1px 1px 1px 0px rgba(255,255,255, .45), 0px 1px 1px 0px rgba(0,0,0, .3);
}
.login form input[type=submit]:hover {
	-webkit-box-shadow: inset 1px 1px 3px 0px rgba(255,255,255, .8), 0px 1px 1px 0px rgba(0,0,0, .6);
	-moz-box-shadow: inset 1px 1px 3px 0px rgba(255,255,255, .8), 0px 1px 1px 0px rgba(0,0,0, .6);
	box-shadow: inset 1px 1px 3px 0px rgba(255,255,255, .8), 0px 1px 1px 0px rgba(0,0,0, .6);
}
.login form input[type=submit]:active {
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;
}

.login form input[type=submit],
.login form span.checked:before {
	background: #a5cd4e;
	background: -moz-linear-gradient(top,  #a5cd4e 0%, #6b8f1a 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a5cd4e), color-stop(100%,#6b8f1a));
	background: -webkit-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%);
	background: -o-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%);
	background: -ms-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%);
	background: linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%);
}
.login form span {
	position: relative;
	margin-top: 15px;
	float: left;
}

.login form label {
	position: absolute;
	top: 1px;
	left: 25px;
	font-family: sans-serif;
	font-weight: bold;
	font-size: 12px;
	color: #e4e4e4;
}

Продолжим прикручивать к WordPress. Открываем файл wp-login.php и ищем, где выводится наша форма входа, сравниваем с нашей первоначальной разметкой HTML, у меня получилось так:

<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
<h1>Войти</h1>
		<input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" tabindex="10" placeholder="Имя пользователя"/>
  <input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" placeholder="Пароль"/>
<?php do_action('login_form'); ?>
</br>
</br>
	<span class="jss"><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90"<?php checked( $rememberme ); ?> />
    <label for="rememberme"> Запомнить</label>
    </span>
		<input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Log In'); ?>" tabindex="100" />

Заменить стандартный логотип WordPress на свой можете с помощью нижеследующей строчки:

h1 a{background:url("../images/wp-logo.png") no-repeat scroll 0 0 transparent;display:block;padding-bottom:15px;text-indent:-9999px; width:356px;margin: 0 auto}

Если все сделали правильно, то у Вас получится довольно не плохая логин панель.

Примеры логин панелей можете посмотреть здесь – Логин панели.

Поделиться:

Похожие записи

  • Сколько труда! Лично меня пока стандартная форма вполне устраивает. Но на будущее добавлю в закладки.

  • А меня заинтересовало. Вопросы будут ответите?

    • Конечно Татьяна,спрашивайте!

  • Хороший совет. Красиво получается.